From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from youngberry.canonical.com ([91.189.89.112]:43453 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752370AbcCNRS5 (ORCPT ); Mon, 14 Mar 2016 13:18:57 -0400 Date: Mon, 14 Mar 2016 17:18:52 +0000 From: Luis Henriques To: gregkh@linuxfoundation.org Cc: rostedt@goodmis.org, sudeep.holla@arm.com, stable@vger.kernel.org, stable-commits@vger.kernel.org Subject: Re: Patch "tracing: Fix check for cpu online when event is disabled" has been added to the 3.10-stable tree Message-ID: <20160314171852.GA13407@charon.olymp> References: <145776624055166@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <145776624055166@kroah.com> Sender: stable-owner@vger.kernel.org List-ID: On Fri, Mar 11, 2016 at 11:04:00PM -0800, Greg Kroah-Hartman wrote: > > This is a note to let you know that I've just added the patch titled > > tracing: Fix check for cpu online when event is disabled > > to the 3.10-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > The filename of the patch is: > tracing-fix-check-for-cpu-online-when-event-is-disabled.patch > and it can be found in the queue-3.10 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let know about it. > Please note that this patch was tagged for stable 3.18+. Cheers, -- Lu�s > > From dc17147de328a74bbdee67c1bf37d2f1992de756 Mon Sep 17 00:00:00 2001 > From: "Steven Rostedt (Red Hat)" > Date: Wed, 9 Mar 2016 11:58:41 -0500 > Subject: tracing: Fix check for cpu online when event is disabled > > From: Steven Rostedt (Red Hat) > > commit dc17147de328a74bbdee67c1bf37d2f1992de756 upstream. > > Commit f37755490fe9b ("tracepoints: Do not trace when cpu is offline") added > a check to make sure that tracepoints only get called when the cpu is > online, as it uses rcu_read_lock_sched() for protection. > > Commit 3a630178fd5f3 ("tracing: generate RCU warnings even when tracepoints > are disabled") added lockdep checks (including rcu checks) for events that > are not enabled to catch possible RCU issues that would only be triggered if > a trace event was enabled. Commit f37755490fe9b only stopped the warnings > when the trace event was enabled but did not prevent warnings if the trace > event was called when disabled. > > To fix this, the cpu online check is moved to where the condition is added > to the trace event. This will place the cpu online check in all places that > it may be used now and in the future. > > Fixes: f37755490fe9b ("tracepoints: Do not trace when cpu is offline") > Fixes: 3a630178fd5f3 ("tracing: generate RCU warnings even when tracepoints are disabled") > Reported-by: Sudeep Holla > Tested-by: Sudeep Holla > Signed-off-by: Steven Rostedt > Signed-off-by: Greg Kroah-Hartman > > --- > include/linux/tracepoint.h | 17 +++++++++-------- > 1 file changed, 9 insertions(+), 8 deletions(-) > > --- a/include/linux/tracepoint.h > +++ b/include/linux/tracepoint.h > @@ -129,9 +129,6 @@ static inline void tracepoint_synchroniz > void *it_func; \ > void *__data; \ > \ > - if (!cpu_online(raw_smp_processor_id())) \ > - return; \ > - \ > if (!(cond)) \ > return; \ > prercu; \ > @@ -265,15 +262,19 @@ static inline void tracepoint_synchroniz > * "void *__data, proto" as the callback prototype. > */ > #define DECLARE_TRACE_NOARGS(name) \ > - __DECLARE_TRACE(name, void, , 1, void *__data, __data) > + __DECLARE_TRACE(name, void, , \ > + cpu_online(raw_smp_processor_id()), \ > + void *__data, __data) > > #define DECLARE_TRACE(name, proto, args) \ > - __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), 1, \ > - PARAMS(void *__data, proto), \ > - PARAMS(__data, args)) > + __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ > + cpu_online(raw_smp_processor_id()), \ > + PARAMS(void *__data, proto), \ > + PARAMS(__data, args)) > > #define DECLARE_TRACE_CONDITION(name, proto, args, cond) \ > - __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), PARAMS(cond), \ > + __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ > + cpu_online(raw_smp_processor_id()) && (PARAMS(cond)), \ > PARAMS(void *__data, proto), \ > PARAMS(__data, args)) > > > > Patches currently in stable-queue which might be from rostedt@goodmis.org are > > queue-3.10/tracing-fix-check-for-cpu-online-when-event-is-disabled.patch > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html