From: Don Zickus <dzickus@redhat.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
Marcelo Tosatti <mtosatti@redhat.com>,
Nick Piggin <npiggin@kernel.dk>, KVM <kvm@vger.kernel.org>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Peter Zijlstra <peterz@infradead.org>,
the arch/x86 maintainers <x86@kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Xen Devel <xen-devel@lists.xensource.com>,
Avi Kivity <avi@redhat.com>,
Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>,
"H. Peter Anvin" <hpa@zytor.com>, Ingo Molnar <mingo@elte.hu>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: [PATCH 08/13] xen/pvticketlock: disable interrupts while blocking
Date: Tue, 13 Sep 2011 15:21:52 -0400 [thread overview]
Message-ID: <20110913192152.GO5795@redhat.com> (raw)
In-Reply-To: <20110913190320.GR7761@one.firstfloor.org>
On Tue, Sep 13, 2011 at 09:03:20PM +0200, Andi Kleen wrote:
> > So I got around to implementing this and it seems to work great. The back
> > to back NMIs are detected properly using the %rip and that info is passed to
> > the NMI notifier. That info is used to determine if only the first
> > handler to report 'handled' is executed or _all_ the handlers are
> > executed.
> >
> > I think all the 'unknown' NMIs I generated with various perf runs have
> > disappeared. I'll post a new version of my nmi notifier rewrite soon.
>
> This will fail when the system is idle.
Heh. I don't think I explained what I was doing properly.
I had a bunch of perf runs going simultaneously on my Core2quad. Probably
generated around 40,000 NMIs in a few minutes. I think around a 1000 or
so detected back-to-back NMIs.
With the current NMI detection algorithm in perf to determine back-to-back
NMIs, I can usually use the above scenario to generate an 'unknown' NMI.
Actually numerous ones before the box freezes. It is a false positive.
With my current code and Avi's idea, all those disappeared as they are now
'swallowed' by the algorithm. That seemed like a positive.
However, being cautious, I decided to instrument lkdtm to inject NMIs to
force unknown NMI conditions
(apic->send_IPI_mask(cpumask_of(smp_processor_id(), NMI_VECTOR)))
I tried to inject the NMIs while my trace_printk buffer was flooding my
screen with 'back-to-back NMIs detected'. I did this 4 or 5 times and
every single one of them were detected as an 'unknown' NMI. So this was
good too, in the sense it was not swallowing 'real' unknown NMIs.
Does that make sense?
Or are you saying an NMI in an idle system will have the same %rip thus
falsely detecting a back-to-back NMI?
Cheers,
Don
>
> -Andi
>
next prev parent reply other threads:[~2011-09-13 19:21 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
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 [this message]
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=20110913192152.GO5795@redhat.com \
--to=dzickus@redhat.com \
--cc=andi@firstfloor.org \
--cc=avi@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).