Re: [patch] Real-Time Preemption, -RT-2.6.9-rc4-mm1-U8

From: Ingo Molnar
Date: Thu Oct 21 2004 - 09:38:08 EST



* Ingo Molnar <mingo@xxxxxxx> wrote:

> the soundcard IRQ trace you got is interesting:
>
> BUG: sleeping function called from invalid context X(2948) at kernel/mutex.c:25 Oct 21 07:53:02 localhost kernel: in_atomic():1 [00010000], irqs_disabled():0
> [<c011f06a>] __might_sleep+0xca/0xe0 (12)
> [<c01387e6>] _mutex_lock+0x26/0x50 (36)
> [<e0a549b6>] snd_audiopci_interrupt+0x46/0xf0 [snd_ens1371] (20)
> [<c01436f6>] handle_IRQ_event+0x46/0x80 (24)
> [<c0143837>] __do_IRQ+0x107/0x160 (32)
> [<c010a299>] do_IRQ+0x59/0x90 (36)
> [<c0108510>] common_interrupt+0x18/0x20 (20)
> preempt count: 00010001
>
> do you have PREEMPT_REALTIME enabled? The above trace is a direct
> interrupt - only the timer interrupt is allowed to execute directly in
> the PREEMPT_REALTIME model - things break badly if it happens for any
> other interrupt (such as the soundcard IRQ).

this also seems to be the major cause of the other problems in your log:
kernel preempting off a hardirq context and then confusing other kernel
code. It's surprising that it booted up at all! Now how did the
soundcard IRQ end up being non-threaded?

Ingo
-
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/