From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Vince Weaver <vincent.weaver@maine.edu>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
Steven Rostedt <rostedt@goodmis.org>,
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 12:34:05 -0800 [thread overview]
Message-ID: <20140228203405.GH11910@linux.vnet.ibm.com> (raw)
In-Reply-To: <alpine.DEB.2.10.1402271957380.6210@vincent-weaver-1.um.maine.edu>
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. ;-)
Thanx, Paul
next prev parent reply other threads:[~2014-02-28 20:34 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-21 20:25 perf_fuzzer causes reboot 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 [this message]
2014-02-28 20:47 ` Steven Rostedt
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
-- strict thread matches above, loose matches on Subject: below --
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=20140228203405.GH11910@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.