Re: RCU question

From: Manfred Spraul
Date: Sun Dec 12 2004 - 05:24:49 EST


Andrea Arcangeli wrote:

On Sun, Dec 12, 2004 at 09:59:00AM +0100, Manfred Spraul wrote:


It means that our NMI irq return path should check if it points to a hlt instruction and if yes, then increase the saved EIP by one before doing the iretd, right?



I don't think we'll ever post any event through nmi, so it doesn't
matter. We only care to be waken by real irqs, not nmi/smi. Idle loop is
fine to ignore the actions of the nmi handlers and to hang into the
"hlt".


No, You misunderstood the problem:

sti
** NMI handler
** normal interrupt arrives, is queued by the cpu
** irqd from NMI handler
** cpu notices the normal interrupt, handles it.
** normal interrupt does a wakeup, schedules a tasklet, whatever
** irqd from normal interupt
hlt << cpu sleeps.

Thus: lost wakeup.

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