From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755071AbcA1NiJ (ORCPT ); Thu, 28 Jan 2016 08:38:09 -0500 Received: from mail.efficios.com ([78.47.125.74]:59434 "EHLO mail.efficios.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751088AbcA1NiG (ORCPT ); Thu, 28 Jan 2016 08:38:06 -0500 Date: Thu, 28 Jan 2016 13:38:00 +0000 (UTC) From: Mathieu Desnoyers To: Peter Zijlstra Cc: rostedt , Thomas Gleixner , Ingo Molnar , linux-kernel@vger.kernel.org, "Paul E. McKenney" Message-ID: <1069612139.6639.1453988280286.JavaMail.zimbra@efficios.com> In-Reply-To: <20160128080859.GB6357@twins.programming.kicks-ass.net> References: <20160128080859.GB6357@twins.programming.kicks-ass.net> Subject: Re: [RFC][BUG] tracer: Fails to work MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [78.47.125.74] X-Mailer: Zimbra 8.6.0_GA_1178 (ZimbraWebClient - FF44 (Linux)/8.6.0_GA_1178) Thread-Topic: tracer: Fails to work Thread-Index: HiFlS8CLXfIvuGWHuJ1hTbXCqVKpCg== Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ----- On Jan 28, 2016, at 3:08 AM, Peter Zijlstra peterz@infradead.org wrote: > Hi Steve, > > So I was hunting wabbits the other day and ftrace failed to work. > > After I cursed a bit on IRC, Thomas found the below, after 'fixing' it > like so things worked enough to get the trace out. > > Relying on things like this make it entirely impossible to get any trace > data out if you've wedged a CPU. Exactly the kind of situation you want > trace data for. > > Please consider an appropriate change to make this happen. I wonder if we should start considering using SRCU to protect tracepoint (and other instrumentation mechanisms) critical sections rather than RCU-sched ? SRCU would allow us to wait for a grace-period specifically targeting tracing, which should increase tracer robustness in face of misbehaving CPUs. It would also allow us to do blocking calls (e.g. get_user()) from syscall entry/exit tracing, which I've been wanting to do for a while. Thoughts ? Thanks, Mathieu > > --- > diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c > index 95181e36891a..b09c5b955555 100644 > --- a/kernel/trace/ring_buffer.c > +++ b/kernel/trace/ring_buffer.c > @@ -4053,7 +4053,7 @@ EXPORT_SYMBOL_GPL(ring_buffer_read_prepare); > void > ring_buffer_read_prepare_sync(void) > { > - synchronize_sched(); > +// synchronize_sched(); > } > EXPORT_SYMBOL_GPL(ring_buffer_read_prepare_sync); -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com