[PATCH] trace_branch: use per-cpu counters for correct/incorrect stats

From: Martin Weiss

Date: Mon Jun 29 2026 - 05:59:12 EST


Replace per-task counters with per-cpu increments to avoid race
conditions in the branch profiler fast path.

Fixes FIXME about atomicity.

Signed-off-by: Martin Weiss <Martin.weiss2410@xxxxxxxxx>
---
kernel/trace/trace_branch.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/trace/trace_branch.c b/kernel/trace/trace_branch.c
index d8e97ad798f0..960bcb3d7dbf 100644
--- a/kernel/trace/trace_branch.c
+++ b/kernel/trace/trace_branch.c
@@ -213,11 +213,11 @@ void ftrace_likely_update(struct ftrace_likely_data *f, int val,
*/
trace_likely_condition(f, val, expect);

- /* FIXME: Make this atomic! */
+ /* use per-cpu counters to avoid contention */
if (val == expect)
- f->data.correct++;
+ this_cpu_inc(f->data.correct);
else
- f->data.incorrect++;
+ this_cpu_inc(f->data.incorrect);

user_access_restore(flags);
}
--
2.54.0