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