perf/core: Rework forwarding of {task|cpu}-clock events
authorRavi Bangoria <ravi.bangoria@amd.com>
Thu, 4 May 2023 11:00:00 +0000 (16:30 +0530)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 8 May 2023 08:58:30 +0000 (10:58 +0200)
commit0d6d062ca27ec7ef547712d34dcfcfb952bcef53
tree4dd7299fe36002612a9b9b00f9f64e03e71b926e
parentac9a78681b921877518763ba0e89202254349d1b
perf/core: Rework forwarding of {task|cpu}-clock events

Currently, PERF_TYPE_SOFTWARE is treated specially since task-clock and
cpu-clock events are interfaced through it but internally gets forwarded
to their own pmus.

Rework this by overwriting event->attr.type in perf_swevent_init() which
will cause perf_init_event() to retry with updated type and event will
automatically get forwarded to right pmu. With the change, SW pmu no
longer needs to be treated specially and can be included in 'pmu_idr'
list.

Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Ravi Bangoria <ravi.bangoria@amd.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20230504110003.2548-2-ravi.bangoria@amd.com
include/linux/perf_event.h
kernel/events/core.c