From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 08/13] xen/pvticketlock: disable interrupts while blocking Date: Wed, 14 Sep 2011 18:01:18 +0300 Message-ID: <4E70C1BE.7060209@redhat.com> References: <20110907134411.GV5795@redhat.com> <4E678992.5050709@redhat.com> <20110907155657.GX5795@redhat.com> <4E679AF4.50209@redhat.com> <20110907165203.GQ6838@redhat.com> <4E67A551.4000502@redhat.com> <20110913184044.GN5795@redhat.com> <20110913190320.GR7761@one.firstfloor.org> <20110913192152.GO5795@redhat.com> <4E7050F7.3000208@redhat.com> <20110914144926.GU7761@one.firstfloor.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20110914144926.GU7761@one.firstfloor.org> Sender: linux-kernel-owner@vger.kernel.org To: Andi Kleen Cc: Don Zickus , Jeremy Fitzhardinge , Peter Zijlstra , "H. Peter Anvin" , Linus Torvalds , Ingo Molnar , the arch/x86 maintainers , Linux Kernel Mailing List , Nick Piggin , Marcelo Tosatti , KVM , Xen Devel , Jeremy Fitzhardinge , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org 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