From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ozlabs.org (ozlabs.org [IPv6:2401:3900:2:1::2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id C4BAD1A0851 for ; Tue, 8 Dec 2015 07:52:31 +1100 (AEDT) Received: from smtprelay.hostedemail.com (smtprelay0004.hostedemail.com [216.40.44.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 22D6E1402C9 for ; Tue, 8 Dec 2015 07:52:31 +1100 (AEDT) Date: Mon, 7 Dec 2015 15:52:24 -0500 From: Steven Rostedt To: Denis Kirjanov Cc: Michael Ellerman , linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org, Benjamin Herrenschmidt Subject: Re: [PATCH 2/2] powerpc: tracing: don't trace hcalls on offline CPUs Message-ID: <20151207155224.2a8d71dd@gandalf.local.home> In-Reply-To: <1448389419-5296-2-git-send-email-kda@linux-powerpc.org> References: <1448389419-5296-1-git-send-email-kda@linux-powerpc.org> <1448389419-5296-2-git-send-email-kda@linux-powerpc.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , I can take this series through my tree, but I need a acked-by from a PPC maintainer for this patch. -- Steve On Tue, 24 Nov 2015 21:23:39 +0300 Denis Kirjanov wrote: > ./drmgr -c cpu -a -r gives the following warning: > > [ 2327.035563] > RCU used illegally from offline CPU! > rcu_scheduler_active = 1, debug_locks = 1 > [ 2327.035564] no locks held by swapper/12/0. > [ 2327.035565] > stack backtrace: > [ 2327.035567] CPU: 12 PID: 0 Comm: swapper/12 Tainted: G S > 4.3.0-rc3-00060-g353169a #5 > [ 2327.035568] Call Trace: > [ 2327.035573] [c0000001d62578e0] [c0000000008977fc] > .dump_stack+0x98/0xd4 (unreliable) > [ 2327.035577] [c0000001d6257960] [c000000000109bd8] > .lockdep_rcu_suspicious+0x108/0x170 > [ 2327.035580] [c0000001d62579f0] [c00000000006a1d0] > .__trace_hcall_exit+0x2b0/0x2c0 > [ 2327.035584] [c0000001d6257ab0] [c00000000006a2e8] > plpar_hcall_norets_trace+0x70/0x8c > [ 2327.035588] [c0000001d6257b20] [c000000000067a14] > .icp_hv_set_cpu_priority+0x54/0xc0 > [ 2327.035592] [c0000001d6257ba0] [c000000000066c5c] > .xics_teardown_cpu+0x5c/0xa0 > [ 2327.035595] [c0000001d6257c20] [c0000000000747ac] > .pseries_mach_cpu_die+0x6c/0x320 > [ 2327.035598] [c0000001d6257cd0] [c0000000000439cc] > .cpu_die+0x3c/0x60 > [ 2327.035602] [c0000001d6257d40] [c0000000000183d8] > .arch_cpu_idle_dead+0x28/0x40 > [ 2327.035606] [c0000001d6257db0] [c0000000000ff1dc] > .cpu_startup_entry+0x4fc/0x560 > [ 2327.035610] [c0000001d6257ed0] [c000000000043728] > .start_secondary+0x328/0x360 > [ 2327.035614] [c0000001d6257f90] [c000000000008a6c] > start_secondary_prolog+0x10/0x14 > [ 2327.035620] cpu 12 (hwid 12) Ready to die... > [ 2327.144463] cpu 13 (hwid 13) Ready to die... > [ 2327.294180] cpu 14 (hwid 14) Ready to die... > [ 2327.403599] cpu 15 (hwid 15) Ready to die... > > Make the hypervisor tracepoints conditional by using > TRACE_EVENT_FN_COND > > Signed-off-by: Denis Kirjanov > --- > arch/powerpc/include/asm/trace.h | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/powerpc/include/asm/trace.h b/arch/powerpc/include/asm/trace.h > index 8e86b48..3dc5803 100644 > --- a/arch/powerpc/include/asm/trace.h > +++ b/arch/powerpc/include/asm/trace.h > @@ -57,12 +57,14 @@ DEFINE_EVENT(ppc64_interrupt_class, timer_interrupt_exit, > extern void hcall_tracepoint_regfunc(void); > extern void hcall_tracepoint_unregfunc(void); > > -TRACE_EVENT_FN(hcall_entry, > +TRACE_EVENT_FN_COND(hcall_entry, > > TP_PROTO(unsigned long opcode, unsigned long *args), > > TP_ARGS(opcode, args), > > + TP_CONDITION(cpu_online(smp_processor_id())), > + > TP_STRUCT__entry( > __field(unsigned long, opcode) > ), > @@ -76,13 +78,15 @@ TRACE_EVENT_FN(hcall_entry, > hcall_tracepoint_regfunc, hcall_tracepoint_unregfunc > ); > > -TRACE_EVENT_FN(hcall_exit, > +TRACE_EVENT_FN_COND(hcall_exit, > > TP_PROTO(unsigned long opcode, unsigned long retval, > unsigned long *retbuf), > > TP_ARGS(opcode, retval, retbuf), > > + TP_CONDITION(cpu_online(smp_processor_id())), > + > TP_STRUCT__entry( > __field(unsigned long, opcode) > __field(unsigned long, retval)