From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756447AbZDTTtS (ORCPT ); Mon, 20 Apr 2009 15:49:18 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754840AbZDTTtD (ORCPT ); Mon, 20 Apr 2009 15:49:03 -0400 Received: from mail-qy0-f118.google.com ([209.85.221.118]:40926 "EHLO mail-qy0-f118.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752244AbZDTTtB (ORCPT ); Mon, 20 Apr 2009 15:49:01 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=pBrGkq6I5rpM+EvO4UPY+coCgAx0A19z0UpNAdQBGthc7FQpFQ+Ut8248QVQEial5R VPw21KHAZjQMmQaisTqN0v20dgLKCIfZhfa/12wgC9fnRhzxFif535wpgWf0FXHHS+1P x/A+P5dqqRSpfq0/ojHRpX4tWQR/dF2g7peGc= Date: Mon, 20 Apr 2009 21:48:54 +0200 From: Frederic Weisbecker To: Steven Rostedt Cc: Ingo Molnar , linux-kernel@vger.kernel.org, Andrew Morton Subject: Re: [PATCH 0/4] [GIT PULL] tracing: recursion and compile fixes Message-ID: <20090420194853.GC5974@nowhere> References: <20090420173819.957332585@goodmis.org> <20090420175533.GA22449@elte.hu> <20090420192917.GB25629@elte.hu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Apr 20, 2009 at 03:43:21PM -0400, Steven Rostedt wrote: > > 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 :-/ Oh! I feared about such racy situation. That's really a pity, this context count is so useful :-/ Frederic. > 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 ]---