Messages in this thread |  | | Date | Thu, 27 Sep 2001 11:37:33 -0400 (EDT) | From | "Richard B. Johnson" <> | Subject | Re: System hangs during interruptible_sleep_on_timeout() under 2.4.9 |
| |
On Thu, 27 Sep 2001, Norbert Roos wrote:
> 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. > [SNIPPED...]
wait_queue_head_t wait_thing;
Interruptible_sleep_on_timeount(&wait_thing, timeout), now requires that "wait_thing" must have been initialized with:
init_waitqueue_head(&wait_thing);
If you didn't do this before this object was used, all bets are off.
Also, you cannot sleep during an interrupt or when you are holding a spin-lock that disables interrupts.
> __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?
This is correct. The flags are pushed then popped into the variable provided.
Cheers, Dick Johnson
Penguin : Linux version 2.4.1 on an i686 machine (799.53 BogoMips).
I was going to compile a list of innovations that could be attributed to Microsoft. Once I realized that Ctrl-Alt-Del was handled in the BIOS, I found that there aren't any.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |