From: Avi Kivity <avi@redhat.com>
To: Don Zickus <dzickus@redhat.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
Peter Zijlstra <peterz@infradead.org>,
"H. Peter Anvin" <hpa@zytor.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@elte.hu>,
the arch/x86 maintainers <x86@kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Nick Piggin <npiggin@kernel.dk>,
Marcelo Tosatti <mtosatti@redhat.com>, KVM <kvm@vger.kernel.org>,
Andi Kleen <andi@firstfloor.org>,
Xen Devel <xen-devel@lists.xensource.com>,
Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: Re: [PATCH 08/13] xen/pvticketlock: disable interrupts while blocking
Date: Wed, 07 Sep 2011 07:13:58 +0300 [thread overview]
Message-ID: <4E66EF86.9070200@redhat.com> (raw)
In-Reply-To: <20110906182758.GR5795@redhat.com>
On 09/06/2011 09:27 PM, Don Zickus wrote:
> On Tue, Sep 06, 2011 at 11:07:26AM -0700, Jeremy Fitzhardinge wrote:
> > >> But, erm, does that even make sense? I'm assuming the NMI reason port
> > >> tells the CPU why it got an NMI. If multiple CPUs can get NMIs and
> > >> there's only a single reason port, then doesn't that mean that either 1)
> > >> they all got the NMI for the same reason, or 2) having a single port is
> > >> inherently racy? How does the locking actually work there?
> > > The reason port is for an external/system NMI. All the IPI-NMI don't need
> > > to access this register to process their handlers, ie perf. I think in
> > > general the IOAPIC is configured to deliver the external NMI to one cpu,
> > > usually the bsp cpu. However, there has been a slow movement to free the
> > > bsp cpu from exceptions like this to allow one to eventually hot-swap the
> > > bsp cpu. The spin locks in that code were an attempt to be more abstract
> > > about who really gets the external NMI. Of course SGI's box is setup to
> > > deliver an external NMI to all cpus to dump the stack when the system
> > > isn't behaving.
> > >
> > > This is a very low usage NMI (in fact almost all cases lead to loud
> > > console messages).
> > >
> > > Hope that clears up some of the confusion.
> >
> > Hm, not really.
> >
> > What does it mean if two CPUs go down that path? Should one do some NMI
> > processing while the other waits around for it to finish, and then do
> > some NMI processing on its own?
>
> Well the time the second one gets to the external NMI it should have been
> cleared by the first cpu, which would of course lead to the second cpu
> causing a 'Dazed and confused' message. But on most x86 machines only one
> cpu should be routed the external NMI. Though there is an SGI box that is
> designed to send an external NMI to all of its cpus.
Is there a way to tell whether an NMI was internally or externally
generated?
I don't think so, especially as two or more NMIs can be coalesced. So
any NMI received on this first cpu has to check the NMI reason port?
> >
> > But on the other hand, I don't really care if you can say that this path
> > will never be called in a virtual machine.
>
> Does virtual machines support hot remove of cpus? Probably not
> considering bare-metal barely supports it.
>
They do.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
next prev parent reply other threads:[~2011-09-07 4:13 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-02 0:54 [PATCH 00/13] [PATCH RFC] Paravirtualized ticketlocks Jeremy Fitzhardinge
2011-09-02 0:54 ` [PATCH 01/13] x86/spinlocks: replace pv spinlocks with pv ticketlocks Jeremy Fitzhardinge
2011-09-02 0:54 ` [PATCH 02/13] x86/ticketlock: collapse a layer of functions Jeremy Fitzhardinge
2011-09-02 0:54 ` [PATCH 03/13] xen/pvticketlock: Xen implementation for PV ticket locks Jeremy Fitzhardinge
2011-09-02 0:54 ` [PATCH 04/13] x86/pvticketlock: use callee-save for lock_spinning Jeremy Fitzhardinge
2011-09-02 0:54 ` [PATCH 05/13] x86/ticketlocks: when paravirtualizing ticket locks, increment by 2 Jeremy Fitzhardinge
2011-09-02 0:54 ` [PATCH 06/13] x86/ticketlock: add slowpath logic Jeremy Fitzhardinge
2011-09-02 18:46 ` Eric Northup
2011-09-02 19:32 ` Jeremy Fitzhardinge
2011-09-02 0:55 ` [PATCH 07/13] x86/ticketlocks: tidy up __ticket_unlock_kick() Jeremy Fitzhardinge
2011-09-02 0:55 ` [PATCH 08/13] xen/pvticketlock: disable interrupts while blocking Jeremy Fitzhardinge
2011-09-02 14:47 ` Peter Zijlstra
2011-09-02 19:29 ` Jeremy Fitzhardinge
2011-09-02 20:47 ` Peter Zijlstra
2011-09-02 21:50 ` Jeremy Fitzhardinge
2011-09-02 22:37 ` Peter Zijlstra
2011-09-02 23:14 ` Andi Kleen
2011-09-05 11:52 ` Stefano Stabellini
2011-09-05 12:05 ` Avi Kivity
2011-09-06 15:14 ` Don Zickus
2011-09-06 18:07 ` Jeremy Fitzhardinge
2011-09-06 18:27 ` Don Zickus
2011-09-06 18:50 ` Jeremy Fitzhardinge
2011-09-07 4:13 ` Avi Kivity [this message]
2011-09-07 13:44 ` Don Zickus
2011-09-07 15:11 ` Avi Kivity
2011-09-07 15:56 ` Don Zickus
2011-09-07 16:25 ` Avi Kivity
2011-09-07 16:52 ` Don Zickus
2011-09-07 17:09 ` Avi Kivity
2011-09-07 17:17 ` Jeremy Fitzhardinge
2011-09-07 17:41 ` Avi Kivity
2011-09-07 19:09 ` Jeremy Fitzhardinge
2011-09-08 7:51 ` Avi Kivity
2011-09-08 17:29 ` Jeremy Fitzhardinge
2011-09-11 9:59 ` Avi Kivity
2011-09-07 17:21 ` Don Zickus
2011-09-07 17:41 ` Avi Kivity
2011-09-13 18:40 ` Don Zickus
2011-09-13 19:03 ` Andi Kleen
2011-09-13 19:21 ` Don Zickus
2011-09-13 19:58 ` Andi Kleen
2011-09-13 20:53 ` Don Zickus
2011-09-13 21:04 ` Andi Kleen
2011-09-14 7:00 ` Avi Kivity
2011-09-14 12:49 ` Don Zickus
2011-09-14 14:49 ` Andi Kleen
2011-09-14 15:01 ` Avi Kivity
2011-09-14 17:28 ` Andi Kleen
2011-09-14 19:26 ` Avi Kivity
2011-09-14 19:34 ` Andi Kleen
2011-09-14 19:56 ` Avi Kivity
2011-09-13 19:27 ` Don Zickus
2011-09-02 0:55 ` [PATCH 09/13] x86/pvticketlocks: we only need to kick if there's waiters Jeremy Fitzhardinge
2011-09-02 0:55 ` [PATCH 10/13] xen/pvticket: allow interrupts to be enabled while blocking Jeremy Fitzhardinge
2011-09-02 14:48 ` Peter Zijlstra
2011-09-02 19:30 ` Jeremy Fitzhardinge
2011-09-02 0:55 ` [PATCH 11/13] x86/ticketlock: only do kick after doing unlock Jeremy Fitzhardinge
2011-09-02 14:49 ` Peter Zijlstra
2011-09-02 19:34 ` Jeremy Fitzhardinge
2011-09-02 0:55 ` [PATCH 12/13] x86/pvticketlock: make sure unlock_kick pvop call is inlined Jeremy Fitzhardinge
2011-09-02 0:55 ` [PATCH 13/13] x86/pvticketlock: use __ticket_t for pvop args Jeremy Fitzhardinge
2011-09-02 11:22 ` [PATCH 00/13] [PATCH RFC] Paravirtualized ticketlocks Stefano Stabellini
2011-09-06 19:33 ` Jeremy Fitzhardinge
2011-09-02 15:38 ` Linus Torvalds
2011-09-02 20:07 ` Jeremy Fitzhardinge
2011-09-02 20:27 ` Linus Torvalds
2011-09-02 21:42 ` Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E66EF86.9070200@redhat.com \
--to=avi@redhat.com \
--cc=andi@firstfloor.org \
--cc=dzickus@redhat.com \
--cc=hpa@zytor.com \
--cc=jeremy.fitzhardinge@citrix.com \
--cc=jeremy@goop.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mtosatti@redhat.com \
--cc=npiggin@kernel.dk \
--cc=peterz@infradead.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).