diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2008-12-16 16:08:58 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-16 18:26:35 -0500 |
commit | 2c2d7329d8afa9efa3ec24e19a53e7be9d14f242 (patch) | |
tree | 12dd840eef0475e81e0dc8f616229a030d7caae4 /kernel/trace | |
parent | 9dfc3bc7d21864d47797d64b8d531d4dbbc0b618 (diff) |
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 <fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/trace')
-rw-r--r-- | kernel/trace/ring_buffer.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 7f69cfeaadf7..eab81f918f6a 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
@@ -107,7 +107,7 @@ u64 ring_buffer_time_stamp(int cpu) | |||
107 | preempt_disable_notrace(); | 107 | preempt_disable_notrace(); |
108 | /* shift to debug/test normalization and TIME_EXTENTS */ | 108 | /* shift to debug/test normalization and TIME_EXTENTS */ |
109 | time = sched_clock() << DEBUG_SHIFT; | 109 | time = sched_clock() << DEBUG_SHIFT; |
110 | preempt_enable_notrace(); | 110 | preempt_enable_no_resched_notrace(); |
111 | 111 | ||
112 | return time; | 112 | return time; |
113 | } | 113 | } |