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

From: Avi Kivity
Date: Wed Sep 14 2011 - 11:02:12 EST


On 09/14/2011 05:49 PM, Andi Kleen wrote:
On Wed, Sep 14, 2011 at 10:00:07AM +0300, Avi Kivity wrote:
> On 09/13/2011 10:21 PM, Don Zickus wrote:
> >Or are you saying an NMI in an idle system will have the same %rip thus
> >falsely detecting a back-to-back NMI?
> >
> >
>
> That's easy to avoid - insert an instruction zeroing the last nmi_rip
> somewhere before or after hlt. It's always okay to execute such an
> instruction (outside the nmi handler itself), since nmi_rip is meant to
> detect a "no instructions executed" condition.

At least for classic hlt there is no simple "after hlt" because it's all
interrupt handlers and exceptions and everything else that can interrupt
combined.

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.

--
error compiling committee.c: too many arguments to function

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