diff options
| author | Levi Yun <yeoreum.yun@arm.com> | 2024-09-13 03:13:47 +0100 | 
|---|---|---|
| committer | Steven Rostedt (Google) <rostedt@goodmis.org> | 2024-10-09 19:44:54 -0400 | 
| commit | afe5960dc208fe069ddaaeb0994d857b24ac19d1 (patch) | |
| tree | 456fd73eb9b35732c65fe75ca9985628f7328bbe /lib/crypto/mpi/mpi-sub-ui.c | |
| parent | 0850e1bc88b1bdc30f7f0b223a92eb22e5f06be0 (diff) | |
trace/trace_event_perf: remove duplicate samples on the first tracepoint event
When a tracepoint event is created with attr.freq = 1,
'hwc->period_left' is not initialized correctly. As a result,
in the perf_swevent_overflow() function, when the first time the event occurs,
it calculates the event overflow and the perf_swevent_set_period() returns 3,
this leads to the event are recorded for three duplicate times.
Step to reproduce:
    1. Enable the tracepoint event & starting tracing
         $ echo 1 > /sys/kernel/tracing/events/module/module_free
         $ echo 1 > /sys/kernel/tracing/tracing_on
    2. Record with perf
         $ perf record -a --strict-freq -F 1 -e "module:module_free"
    3. Trigger module_free event.
         $ modprobe -i sunrpc
         $ modprobe -r sunrpc
Result:
     - Trace pipe result:
         $ cat trace_pipe
         modprobe-174509  [003] .....  6504.868896: module_free: sunrpc
     - perf sample:
         modprobe  174509 [003]  6504.868980: module:module_free: sunrpc
         modprobe  174509 [003]  6504.868980: module:module_free: sunrpc
         modprobe  174509 [003]  6504.868980: module:module_free: sunrpc
By setting period_left via perf_swevent_set_period() as other sw_event did,
This problem could be solved.
After patch:
     - Trace pipe result:
         $ cat trace_pipe
         modprobe 1153096 [068] 613468.867774: module:module_free: xfs
     - perf sample
         modprobe 1153096 [068] 613468.867794: module:module_free: xfs
Link: https://lore.kernel.org/20240913021347.595330-1-yeoreum.yun@arm.com
Fixes: bd2b5b12849a ("perf_counter: More aggressive frequency adjustment")
Signed-off-by: Levi Yun <yeoreum.yun@arm.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Diffstat (limited to 'lib/crypto/mpi/mpi-sub-ui.c')
0 files changed, 0 insertions, 0 deletions
