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 <[email protected]> --- 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
