All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tracing: Fix preempt count leak
@ 2010-12-09  7:47 Li Zefan
  2010-12-21  0:55 ` Li Zefan
  2011-01-09 21:11 ` [tip:perf/urgent] " tip-bot for Li Zefan
  0 siblings, 2 replies; 4+ messages in thread
From: Li Zefan @ 2010-12-09  7:47 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Frederic Weisbecker, Jiri Olsa, LKML, Hiroyuki KAMEZAWA

While running my ftrace stress test, this showed up:

BUG: sleeping function called from invalid context at mm/mmap.c:233
...
note: cat[3293] exited with preempt_count 1

The bug was introduced by commit 91e86e560d0b3ce4c5fc64fd2bbb99f856a30a4e
("tracing: Fix recursive user stack trace")

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
 kernel/trace/trace.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index c380612..5767457 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -1313,12 +1313,10 @@ ftrace_trace_userstack(struct ring_buffer *buffer, unsigned long flags, int pc)
 
 	__this_cpu_inc(user_stack_count);
 
-
-
 	event = trace_buffer_lock_reserve(buffer, TRACE_USER_STACK,
 					  sizeof(*entry), flags, pc);
 	if (!event)
-		return;
+		goto out_drop_count;
 	entry	= ring_buffer_event_data(event);
 
 	entry->tgid		= current->tgid;
@@ -1333,8 +1331,8 @@ ftrace_trace_userstack(struct ring_buffer *buffer, unsigned long flags, int pc)
 	if (!filter_check_discard(call, entry, buffer, event))
 		ring_buffer_unlock_commit(buffer, event);
 
+ out_drop_count:
 	__this_cpu_dec(user_stack_count);
-
  out:
 	preempt_enable();
 }
-- 
1.6.3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-01-09 21:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-09  7:47 [PATCH] tracing: Fix preempt count leak Li Zefan
2010-12-21  0:55 ` Li Zefan
2010-12-21  1:33   ` Steven Rostedt
2011-01-09 21:11 ` [tip:perf/urgent] " tip-bot for Li Zefan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.