From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756237AbZDTTnb (ORCPT ); Mon, 20 Apr 2009 15:43:31 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754474AbZDTTnX (ORCPT ); Mon, 20 Apr 2009 15:43:23 -0400 Received: from hrndva-omtalb.mail.rr.com ([71.74.56.125]:65241 "EHLO hrndva-omtalb.mail.rr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751356AbZDTTnW (ORCPT ); Mon, 20 Apr 2009 15:43:22 -0400 Date: Mon, 20 Apr 2009 15:43:21 -0400 (EDT) From: Steven Rostedt X-X-Sender: rostedt@gandalf.stny.rr.com To: Ingo Molnar cc: =?ISO-8859-15?Q?Fr=E9d=E9ric_Weisbecker?= , linux-kernel@vger.kernel.org, Andrew Morton Subject: Re: [PATCH 0/4] [GIT PULL] tracing: recursion and compile fixes In-Reply-To: <20090420192917.GB25629@elte.hu> Message-ID: References: <20090420173819.957332585@goodmis.org> <20090420175533.GA22449@elte.hu> <20090420192917.GB25629@elte.hu> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 20 Apr 2009, Ingo Molnar wrote: > Running tests on all trace events: > Testing all events: <4>Tracing recursion: HC[0]:SC[0]:NMI[0] Recursion is wrong :-/ > ------------[ cut here ]------------ > WARNING: at kernel/trace/ring_buffer.c:1510 ring_buffer_lock_reserve+0xf7/0x1ce() > Hardware name: To Be Filled By O.E.M. > Pid: 1, comm: swapper Not tainted 2.6.30-rc2-tip-01538-ge8201b9-dirty #37740 > Call Trace: > [] warn_slowpath+0xcc/0x114 > [] ? trace_hardirqs_on_caller+0x11d/0x179 > [] ? mark_held_locks+0x60/0x95 > [] ring_buffer_lock_reserve+0xf7/0x1ce > [] trace_buffer_lock_reserve+0x34/0x7e > [] ? do_IRQ+0xf/0xe8 > [] trace_current_buffer_lock_reserve+0x36/0x4c > [] function_test_events_call+0x7e/0xe2 > [] ? ret_from_intr+0x0/0x16 > [] ftrace_call+0x5/0x2b > [] ? common_interrupt+0xe/0x13 > [] ? do_IRQ+0x14/0xe8 The function tracer was called before we updated the hardirq_count :-/ I liked the fact that we can detect same level recursion. Perhaps I'll just make a depth test instead. Have a max of 16? times we can recurse (should be plenty) and then bug if we hit it? -- Steve > [] ? common_interrupt+0xe/0x13 > [] ret_from_intr+0x0/0x16 > [] ? trace_clock_local+0x37/0x57 > [] ? __wake_up+0x57/0x7a > [] ? rb_reserve_next_event+0x73/0x319 > [] ? ftrace_raw_event_kmalloc+0x11/0xdd > [] ? trace_wake_up+0x41/0x57 > [] ? ring_buffer_lock_reserve+0x16d/0x1ce > [] ? trace_buffer_lock_reserve+0x34/0x7e > [] ? tracepoint_entry_add_probe+0xb3/0x12b > [] ? tracepoint_entry_add_probe+0xb3/0x12b > [] ? trace_current_buffer_lock_reserve+0x36/0x4c > [] ? tracepoint_entry_add_probe+0xb3/0x12b > [] ? ftrace_raw_event_kmalloc+0x68/0xdd > [] ? tracepoint_entry_add_probe+0xb3/0x12b > [] ? __kmalloc+0x268/0x298 > [] ? ftrace_event_lock_acquire+0x0/0x89 > [] ? tracepoint_entry_add_probe+0xb3/0x12b > [] ? get_tracepoint+0x12/0x274 > [] ? ftrace_event_lock_acquire+0x0/0x89 > [] ? tracepoint_add_probe+0x70/0xf6 > [] ? tracepoint_probe_register+0x40/0xbc > [] ? ftrace_reg_event_lock_acquire+0x2b/0x5c > [] ? ftrace_event_enable_disable+0x43/0x59 > [] ? ftrace_set_clr_event+0x10c/0x15b > [] ? event_trace_self_tests+0x39b/0x3e6 > [] ? event_trace_self_tests_init+0x0/0x5f > [] ? event_trace_self_tests_init+0x3b/0x5f > [] ? do_one_initcall+0x84/0x1ad > [] ? __lock_acquire+0x851/0x8d3 > [] ? get_inode_number+0x61/0xc2 > [] ? proc_register+0xb2/0x139 > [] ? proc_register+0x114/0x139 > [] ? native_sched_clock+0x25/0x9c > [] ? sched_clock+0x33/0x39 > [] ? lock_release_holdtime+0x2f/0x19d > [] ? proc_register+0x114/0x139 > [] ? __lock_release+0x177/0x196 > [] ? proc_register+0xb2/0x139 > [] ? _raw_spin_unlock+0x14f/0x16e > [] ? _spin_unlock+0x3a/0x55 > [] ? proc_register+0x114/0x139 > [] ? create_proc_entry+0x92/0xbe > [] ? register_irq_proc+0xc2/0xf2 > [] ? early_idt_handler+0x0/0x71 > [] ? early_idt_handler+0x0/0x71 > [] ? kernel_init+0xb2/0x11a > [] ? early_idt_handler+0x0/0x71 > [] ? child_rip+0xa/0x20 > [] ? restore_args+0x0/0x30 > [] ? kernel_init+0x0/0x11a > [] ? child_rip+0x0/0x20 > ---[ end trace 0d52030ff90bb47d ]---