Arnd Bergmann reported: In my ARM randconfig tests, I'm getting a build error for newly added code in bpf_perf_event_read and bpf_perf_event_output whenever CONFIG_PERF_EVENTS is disabled: kernel/trace/bpf_trace.c: In function 'bpf_perf_event_read': kernel/trace/bpf_trace.c:203:11: error: 'struct perf_event' has no member named 'oncpu' if (event->oncpu != smp_processor_id() || ^ kernel/trace/bpf_trace.c:204:11: error: 'struct perf_event' has no member named 'pmu' event->pmu->count) This can happen when UPROBE_EVENT is enabled but KPROBE_EVENT is disabled. I'm not sure if that is a configuration we care about, otherwise we could prevent this case from occuring by adding Kconfig dependencies. Looking at this further, it's really that UPROBE_EVENT enables PERF_EVENTS. By just having BPF_EVENTS depend on PERF_EVENTS, then all is fine.
Unified · Split
| @@ -434,7 +434,7 @@ config UPROBE_EVENT · 433 unmodified lines | |||
| 434 | 434 | ||
| 435 | config BPF_EVENTS | 435 | config BPF_EVENTS |
| 436 | depends on BPF_SYSCALL | 436 | depends on BPF_SYSCALL |
| 437 | depends on KPROBE_EVENT || UPROBE_EVENT | 437 | depends on (KPROBE_EVENT || UPROBE_EVENT) && PERF_EVENTS |
| 438 | bool | 438 | bool |
| 439 | default y | 439 | default y |
| 440 | help | 440 | help |