From: Frederic Weisbecker Date: Tue, 16 Dec 2008 21:08:58 +0000 (+0100) Subject: tracing/ftrace: use preempt_enable_no_resched_notrace in ring_buffer_time_stamp() X-Git-Tag: v2.6.29-rc1~586^2~11 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=2c2d7329d8afa9efa3ec24e19a53e7be9d14f242;p=linux-2.6-omap-h63xx.git tracing/ftrace: use preempt_enable_no_resched_notrace in ring_buffer_time_stamp() Impact: prevent a trace recursion After some tests with function graph tracer under x86-32, I saw some recursions caused by ring_buffer_time_stamp() that calls preempt_enable_no_notrace() which calls preempt_schedule() which is traced itself. This patch re-enables preemption without rescheduling. Signed-off-by: Frederic Weisbecker Signed-off-by: Ingo Molnar --- diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 7f69cfeaadf..eab81f918f6 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -107,7 +107,7 @@ u64 ring_buffer_time_stamp(int cpu) preempt_disable_notrace(); /* shift to debug/test normalization and TIME_EXTENTS */ time = sched_clock() << DEBUG_SHIFT; - preempt_enable_notrace(); + preempt_enable_no_resched_notrace(); return time; }