Re: [PATCH 08/13] xen/pvticketlock: disable interrupts while blocking

From: Avi Kivity
Date: Wed Sep 14 2011 - 15:57:28 EST


On 09/14/2011 10:34 PM, Andi Kleen wrote:
On Wed, Sep 14, 2011 at 10:26:21PM +0300, Avi Kivity wrote:
> On 09/14/2011 08:28 PM, Andi Kleen wrote:
> >> If an NMI hits in an interrupt handler, or in the "after hlt" section
> >> before the write-to-last-nmi-rip, then we'll see that %rip has changed.
> >> If it hits after the write-to-last-nmi-rip instruction (or in the hlt
> >> itself), then we'll also see that %rip has changed, due to the effect of
> >> that instruction.
> >
> >It won't handle multiple NMIs in halt. I assume that's reasonable common.
> >
>
> Why not?

They all have the same original RIPs and there is no way to distingush
them.


That's how we detect multiple NMIs.

1. First NMI is posted
2. NMI handler starts
3. 2nd NMI posted, queued
4. First NMI source handled
5. IRET
6. Queued NMI hits the core
7. back-to-back NMI detected (same rip)
8. Second (and third...) NMI source handled
9. Execution continues.


--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.

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