Re: [patch] Real-Time Preemption, -RT-2.6.9-mm1-U10.2

From: Ingo Molnar
Date: Sat Oct 23 2004 - 05:45:40 EST



* Rui Nuno Capela <rncbc@xxxxxxxxx> wrote:

> Regarding the jackd -R issue, I was trying to capture some debug data
> via netconsole on my laptop (P4/UP) running RT-U10.2, and when the
> system freezes as reported before, I was able to kick the SysRq+T.
> But, instead of a task trace list, I get the following:
>
> SysRq : <3>BUG: sleeping function called from invalid context IRQ 1(776)
> at kernel/mutex.c:37
> in_atomic():1 [00000001], irqs_disabled():1
> [<c0104ee4>] dump_stack+0x1e/0x20 (20)
> [<c0114a23>] __might_sleep+0xb2/0xc7 (36)
> [<c012c0f2>] _mutex_lock+0x39/0x5e (28)

> preempt count: 00000002
> . 2-level deep critical section nesting:
> .. entry 1: __sysrq_lock_table+0x12/0x14 [<c01f482b>] /
> (__handle_sysrq+0x1a/0xed [<c01f482b>])
> .. entry 2: print_traces+0x16/0x48 [<c0104ee4>] / (dump_stack+0x1e/0x20

does the patch below help?

Ingo

--- linux/drivers/char/sysrq.c.orig
+++ linux/drivers/char/sysrq.c
@@ -252,7 +252,7 @@ static struct sysrq_key_op sysrq_kill_op


/* Key Operations table and lock */
-static DECLARE_RAW_SPINLOCK(sysrq_key_table_lock);
+static DECLARE_SPINLOCK(sysrq_key_table_lock);
#define SYSRQ_KEY_TABLE_LENGTH 36
static struct sysrq_key_op *sysrq_key_table[SYSRQ_KEY_TABLE_LENGTH] = {
/* 0 */ &sysrq_loglevel_op,
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/