From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <51F2A08B.2090207@broadcom.com> Date: Fri, 26 Jul 2013 18:15:07 +0200 From: "Arend van Spriel" MIME-Version: 1.0 To: "Steven Rostedt" cc: linux-kernel@vger.kernel.org, "Linus Torvalds" , "Ingo Molnar" , "Andrew Morton" , "Alexander Z Lam" , "Vaibhav Nagarnaik" , "David Sharp" , stable@vger.kernel.org Subject: Re: [PATCH 9/9] tracing: Remove locking trace_types_lock from tracing_reset_all_online_cpus() References: <20130726130327.911599518@goodmis.org> <20130726130513.428993451@goodmis.org> In-Reply-To: <20130726130513.428993451@goodmis.org> Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: On 07/26/2013 03:03 PM, Steven Rostedt wrote: > From: "Steven Rostedt (Red Hat)" > > Commit a82274151af "tracing: Protect ftrace_trace_arrays list in trace_events.c" > added taking the trace_types_lock mutex in trace_events.c as there were > several locations that needed it for protection. Unfortunately, it also > encapsulated a call to tracing_reset_all_online_cpus() which also takes > the trace_types_lock, causing a deadlock. > > This happens when a module has tracepoints and has been traced. When the > module is removed, the trace events module notifier will grab the > trace_types_lock, do a bunch of clean ups, and also clears the buffer > by calling tracing_reset_all_online_cpus. This doesn't happen often > which explains why it wasn't caught right away. > > Commit a82274151af was marked for stable, which means this must be > sent to stable too. > > Link:http://lkml.kernel.org/r/51EEC646.7070306@broadcom.com > > Reported-by: Arend van *Spril* Nasty dutch names, huh. If we ever meet on a summit you may try to pronounce it :-) Way easier than Finnish. Regards, Arend > Tested-by: Arend van *Spriel* > Cc: Alexander Z Lam > Cc: Vaibhav Nagarnaik > Cc: David Sharp > Cc:stable@vger.kernel.org # 3.10 > Signed-off-by: Steven Rostedt > --- > kernel/trace/trace.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-)