[<prev] [next>] [day] [month] [year] [list]
Message-Id: <1180737321.21781.46.camel@localhost.localdomain>
Date: Fri, 01 Jun 2007 18:35:21 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Ingo Molnar <mingo@...e.hu>
Cc: Thomas Gleixner <tglx@...utronix.de>,
Arnaldo Carvalho de Melo <acme@...stprotocols.net>,
LKML <linux-kernel@...r.kernel.org>
Subject: [PATCH RT] add might_sleep in rt_spin_lock_fastlock
Ingo,
Every so often we get bit by a bug "scheduling in atomic", and it comes
from a rtmutex spin_lock. The bug only happens when that lock has
contention, so we miss it a lot.
This patch adds a might_sleep() to the rt_spin_lock_fastlock to find
bugs where we can schedule in atomic.
The one place that exists now is from do_page_fault and sending a
signal. I wrote a simple crash program that segfaults (attached) and
with this patch, I get the warning.
-- Steve
Signed-off-by: Steven Rostedt <rostedt@...dmis.org>
Index: linux-2.6.21-rt9/kernel/rtmutex.c
===================================================================
--- linux-2.6.21-rt9.orig/kernel/rtmutex.c
+++ linux-2.6.21-rt9/kernel/rtmutex.c
@@ -602,6 +602,8 @@ static inline void
rt_spin_lock_fastlock(struct rt_mutex *lock,
void fastcall (*slowfn)(struct rt_mutex *lock))
{
+ might_sleep();
+
if (likely(rt_mutex_cmpxchg(lock, NULL, current)))
rt_mutex_deadlock_account_lock(lock, current);
else
View attachment "crashme.c" of type "text/x-csrc" (232 bytes)
Powered by blists - more mailing lists