[lkml]   [2001]   [Sep]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: System hangs during interruptible_sleep_on_timeout() under 2.4.9
Ingo Molnar wrote:

> are you sure timer interrupts are processed while you are waiting for the
> timeout to expire? I'd suggest to put a:
> printk("<%d>", irq);
> into arch/i386/kernel/irq.c:do_IRQ().

Until the call of interruptible_sleep_on_timeout(), timer interrupts
were processed. Right after the call no more output is made.

> So you can see what kind of
> interrupt traffic there is while the device initializes and you are
> waiting for it to generate an interrupt.

I use the function only for a short delay (switch on the device's reset,
wait and switch it off again), so the device even does not generate a
PCI interrupt.

In the time inbetween I have traced the problem: Inside the sleep_on()
functions there is the macro SLEEP_ON_HEAD containing the call
wq_write_lock_irqsave(), where the error happens. This is a macro, too,
which at last expands to

__asm__ __volatile__("pushfl ; popl %0":"=g" (x): /* no input */)

(x ist the variable where the IRQ flags are stored)
I'm not familiar with x86 assembler; is it possible that something can
go wrong here?

bye, Norbert
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:03    [W:0.078 / U:0.520 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site