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 kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html