From: Steven Rostedt <rostedt@goodmis.org>
To: paulmck@linux.vnet.ibm.com
Cc: Vince Weaver <vincent.weaver@maine.edu>,
"H. Peter Anvin" <hpa@zytor.com>,
Peter Zijlstra <peterz@infradead.org>,
Linux Kernel <linux-kernel@vger.kernel.org>,
Ingo Molnar <mingo@redhat.com>
Subject: Re: perf_fuzzer compiled for x32 causes reboot
Date: Fri, 28 Feb 2014 15:47:16 -0500 [thread overview]
Message-ID: <20140228154716.0198d7cb@gandalf.local.home> (raw)
In-Reply-To: <20140228203405.GH11910@linux.vnet.ibm.com>
On Fri, 28 Feb 2014 12:34:05 -0800
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
> On Thu, Feb 27, 2014 at 08:00:04PM -0500, Vince Weaver wrote:
> > On Thu, 27 Feb 2014, H. Peter Anvin wrote:
> >
> > > On 02/27/2014 03:30 PM, Steven Rostedt wrote:
> > > > On Thu, 27 Feb 2014 14:52:54 -0800
> > > > "H. Peter Anvin" <hpa@zytor.com> wrote:
> > > >
> > > >> On 02/27/2014 02:31 PM, Steven Rostedt wrote:
> > > >>>
> > > >>> Yeah, something is getting mesed up.
> > > >>>
> > > >>
> > > >> What it *looks* like to me is that we try to nest the cr2 save/restore,
> > > >> which doesn't nest because it is a percpu variable.
> > > >>
> > > >> ... except in the x86-64 case, we *ALSO* save/restore cr2 inside
> > > >> entry_64.S, which makes the stuff in do_nmi completely redundant and
> > > >> there for no good reason.
> > > >
> > > > Peter, look at the code. That percpu cr2 is in a #ifdef CONFIG_X86_32
> > > > section. That is, it isn't even executed. That's i386 code. The only
> > > > place the cr2 is saved for x86_64 is in entry_64.S.
> > > >
> > >
> > > Right, egg on my face. However, I still think it would make more sense
> > > for it to nest the way entry_64.S does if at all possible.
> > >
> > > That makes this even more confusing, though. I would still like to see
> > > what happens with the patch I sent Vince.
> >
> > I'll try your patch momentarily, first I had some other changes I started
> > running before I left work (for some reason it recompiled the whole
> > kernel).
> >
> > 8: function: perf_output_begin
> > 8: bprint: perf_output_begin: VMW: event type 2 config 2a st: 2c3e
> > 8: bputs: perf_output_begin: VMW: before rcu_dereference
> > 9: function: __do_page_fault
> > 9: function: down_read_trylock
> > 9: function: _cond_resched
> > 9: function: find_vma
> >
> > so it looks like the fault happens
> >
> > rcu_read_lock();
> >
> > 116 /*
> > 117 * For inherited events we send all the output towards the parent.
> > 118 */
> > 119 if (event->parent)
> > 120 event = event->parent;
> > 121
> >
> > somewhere between here
> >
> > 122 rb = rcu_dereference(event->rb);
> > 123 if (unlikely(!rb))
> > 124 goto out;
> >
> > and here
> >
> > 125
> > 126 if (unlikely(!rb->nr_pages))
> > 127 goto out;
> >
> > although if rcu locks do anything to turn off tracing then this could be
> > suspect.
>
> The most likely suspect is of course event->rb in the rcu_dereference.
> I have to defer to Steven on how rcu_read_lock() and rcu_read_unlock()
> currently interact with tracing. ;-)
These are all perf related. You'll need to defer to Peter Zijlstra ;-)
-- Steve
next prev parent reply other threads:[~2014-02-28 20:47 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-21 20:25 perf_fuzzer " Vince Weaver
2014-02-21 22:13 ` perf_fuzzer compiled for x32 " Vince Weaver
2014-02-21 22:34 ` Vince Weaver
2014-02-22 4:50 ` Vince Weaver
2014-02-22 5:03 ` H. Peter Anvin
2014-02-22 6:26 ` H. Peter Anvin
2014-02-23 5:18 ` Vince Weaver
2014-02-23 5:24 ` H. Peter Anvin
2014-02-23 6:07 ` H. Peter Anvin
2014-02-23 14:05 ` Vince Weaver
2014-02-24 3:02 ` Vince Weaver
2014-02-24 5:22 ` H. Peter Anvin
2014-02-24 15:35 ` Vince Weaver
2014-02-24 16:34 ` Vince Weaver
2014-02-24 16:47 ` H. Peter Anvin
2014-02-24 17:10 ` Vince Weaver
2014-02-24 17:25 ` Peter Zijlstra
2014-02-24 17:32 ` Vince Weaver
2014-02-24 17:40 ` H. Peter Anvin
2014-02-24 18:00 ` Vince Weaver
2014-02-24 18:07 ` Vince Weaver
2014-02-24 18:34 ` H. Peter Anvin
2014-02-24 19:13 ` Steven Rostedt
2014-02-24 19:15 ` H. Peter Anvin
2014-02-24 19:30 ` Peter Zijlstra
2014-02-24 19:32 ` Steven Rostedt
2014-02-25 3:49 ` H. Peter Anvin
2014-02-25 14:07 ` Vince Weaver
2014-02-25 14:34 ` H. Peter Anvin
2014-02-25 14:43 ` Steven Rostedt
2014-02-25 15:33 ` Vince Weaver
2014-02-26 15:06 ` Vince Weaver
2014-02-27 22:06 ` Vince Weaver
2014-02-27 22:31 ` Steven Rostedt
2014-02-27 22:52 ` H. Peter Anvin
2014-02-27 23:30 ` Steven Rostedt
2014-02-27 23:46 ` H. Peter Anvin
2014-02-28 1:00 ` Vince Weaver
2014-02-28 20:34 ` Paul E. McKenney
2014-02-28 20:47 ` Steven Rostedt [this message]
2014-02-28 20:54 ` Peter Zijlstra
2014-02-28 21:17 ` Paul E. McKenney
2014-02-28 21:27 ` Peter Zijlstra
2014-02-28 21:51 ` Paul E. McKenney
2014-02-28 21:55 ` Peter Zijlstra
2014-02-28 22:05 ` Steven Rostedt
2014-02-28 22:23 ` Paul E. McKenney
2014-02-28 1:34 ` Vince Weaver
2014-02-28 2:17 ` H. Peter Anvin
2014-02-28 2:57 ` Steven Rostedt
2014-02-28 11:11 ` Peter Zijlstra
2014-02-28 13:37 ` Steven Rostedt
2014-02-28 14:15 ` Vince Weaver
2014-02-28 14:23 ` Steven Rostedt
2014-02-28 15:07 ` Vince Weaver
2014-02-28 15:13 ` H. Peter Anvin
2014-02-28 15:40 ` Peter Zijlstra
2014-02-28 16:15 ` H. Peter Anvin
2014-02-28 16:29 ` Steven Rostedt
2014-02-28 19:33 ` [PATCH] x86: Rename copy_from_user_nmi() to copy_from_user_trace() Steven Rostedt
2014-02-28 20:46 ` Peter Zijlstra
2014-02-28 20:51 ` Steven Rostedt
2014-02-28 20:58 ` Peter Zijlstra
2014-02-28 21:01 ` Steven Rostedt
2014-02-28 21:17 ` Peter Zijlstra
2014-02-28 20:56 ` perf_fuzzer compiled for x32 causes reboot Peter Zijlstra
2014-02-28 21:06 ` Steven Rostedt
2014-03-01 9:16 ` Ingo Molnar
2014-03-01 9:50 ` Borislav Petkov
2014-03-01 16:50 ` H. Peter Anvin
2014-03-04 23:05 ` Borislav Petkov
2014-03-03 9:16 ` Peter Zijlstra
2014-02-28 20:55 ` Peter Zijlstra
2014-02-28 15:20 ` Steven Rostedt
2014-02-28 15:30 ` Steven Rostedt
2014-02-28 20:38 ` H. Peter Anvin
2014-02-28 20:46 ` Steven Rostedt
2014-02-28 21:18 ` Vince Weaver
2014-02-28 21:30 ` Steven Rostedt
2014-02-28 23:34 ` Vince Weaver
2014-03-01 0:43 ` H. Peter Anvin
2014-03-01 3:36 ` Steven Rostedt
2014-03-01 16:24 ` Andi Kleen
2014-03-02 15:34 ` Vince Weaver
2014-03-02 16:02 ` Vince Weaver
2014-02-28 9:39 ` Peter Zijlstra
2014-02-24 17:40 ` Peter Zijlstra
2014-02-24 17:41 ` Vince Weaver
2014-02-24 17:42 ` H. Peter Anvin
2014-02-24 17:52 ` H. Peter Anvin
2014-02-28 15:33 [PATCH] x86 trace: Fix page fault tracing bug Jiri Olsa
2014-02-28 15:47 ` Peter Zijlstra
2014-02-28 16:05 ` [PATCHv2] " Jiri Olsa
2014-02-28 16:11 ` H. Peter Anvin
2014-02-28 16:23 ` Steven Rostedt
2014-02-28 16:15 ` Steven Rostedt
2014-03-05 0:03 ` [tip:x86/urgent] x86, trace: Fix CR2 corruption when tracing page faults tip-bot for Jiri Olsa
2014-03-05 11:14 ` Peter Zijlstra
2014-03-05 12:20 ` Steven Rostedt
2014-03-05 12:25 ` Peter Zijlstra
2014-03-05 12:33 ` Steven Rostedt
2014-03-05 12:54 ` Peter Zijlstra
2014-03-05 13:02 ` Peter Zijlstra
2014-03-05 13:07 ` Peter Zijlstra
2014-03-05 12:36 ` Peter Zijlstra
2014-03-05 13:00 ` Steven Rostedt
2014-03-05 13:08 ` Peter Zijlstra
2014-03-05 21:37 ` H. Peter Anvin
2014-03-06 8:40 ` Peter Zijlstra
2014-03-06 11:02 ` Steven Rostedt
2014-03-06 14:53 ` [PATCH] x86: Further robustify CR2 handling vs tracing Peter Zijlstra
2014-03-07 23:07 ` [tip:x86/urgent] x86, trace: " tip-bot for Peter Zijlstra
2014-02-28 15:47 ` [PATCH] x86 trace: Fix page fault tracing bug Jiri Olsa
2014-02-28 16:00 ` Steven Rostedt
2014-02-28 16:01 ` Steven Rostedt
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=20140228154716.0198d7cb@gandalf.local.home \
--to=rostedt@goodmis.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=vincent.weaver@maine.edu \
/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
all inboxes | Powered by JetHome®