| 105 | } |
| 106 | |
| 107 | func startEbpfProgram(ctx context.Context, prog ebpfProgram) func() { |
| 108 | tracer, err := prog.new() |
| 109 | if err != nil { |
| 110 | slog.Debug("eBPF program disabled", "program", prog.name, "reason", err.Error()) |
| 111 | return nil |
| 112 | } |
| 113 | tracerCtx, cancelTracer := context.WithCancel(ctx) |
| 114 | go tracer.Run(tracerCtx) |
| 115 | return func() { |
| 116 | cancelTracer() |
| 117 | if err := tracer.Close(); err != nil { |
| 118 | slog.Warn("eBPF program close failed", "program", prog.name, "error", err) |
| 119 | } |
| 120 | } |
| 121 | } |
| 122 | |
| 123 | func addFlags(app *cli.App) { |
| 124 | defaultConf, err := defaultBuildkitConfig() |