Commit 47e74f2b authored by Steven Rostedt's avatar Steven Rostedt Committed by Ingo Molnar

ring-buffer: no preempt for sched_clock()

Impact: disable preemption when calling sched_clock()

The ring_buffer_time_stamp still uses sched_clock as its counter.
But it is a bug to call it with preemption enabled. This requirement
should not be pushed to the ring_buffer_time_stamp callers, so
the ring_buffer_time_stamp needs to disable preemption when calling
sched_clock.
Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent c1e7abbc
...@@ -51,8 +51,14 @@ void tracing_off(void) ...@@ -51,8 +51,14 @@ void tracing_off(void)
/* FIXME!!! */ /* FIXME!!! */
u64 ring_buffer_time_stamp(int cpu) u64 ring_buffer_time_stamp(int cpu)
{ {
u64 time;
preempt_disable_notrace();
/* shift to debug/test normalization and TIME_EXTENTS */ /* shift to debug/test normalization and TIME_EXTENTS */
return sched_clock() << DEBUG_SHIFT; time = sched_clock() << DEBUG_SHIFT;
preempt_enable_notrace();
return time;
} }
void ring_buffer_normalize_time_stamp(int cpu, u64 *ts) void ring_buffer_normalize_time_stamp(int cpu, u64 *ts)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment