From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932922Ab1KJXrj (ORCPT ); Thu, 10 Nov 2011 18:47:39 -0500 Received: from e7.ny.us.ibm.com ([32.97.182.137]:50836 "EHLO e7.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932856Ab1KJXrh (ORCPT ); Thu, 10 Nov 2011 18:47:37 -0500 Date: Thu, 10 Nov 2011 15:47:17 -0800 From: "Paul E. McKenney" To: Yong Zhang Cc: linux-kernel@vger.kernel.org, Pekka Enberg , Thomas Gleixner , cl@gentwo.org Subject: Re: 3.2-rc1: INFO: possible recursive locking detected Message-ID: <20111110234717.GI2354@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com References: <20111109090556.GA5949@zhy> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20111109090556.GA5949@zhy> User-Agent: Mutt/1.5.20 (2009-06-14) x-cbid: 11111023-5806-0000-0000-000003864D30 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Nov 09, 2011 at 05:05:57PM +0800, Yong Zhang wrote: > Hi, > > Just get below waring when doing: > for i in `seq 1 10`; do ./perf bench -f simple sched messaging -g 40; done > > And kernel config is attached. This appears to me to be the same false positive from the slab allocator that has been seen before. Christoph, any progress on this? Thanx, Paul > Thanks, > Yong > > --- > [ 350.148020] ============================================= > [ 350.148020] [ INFO: possible recursive locking detected ] > [ 350.148020] 3.2.0-rc1-10791-g76a4b59-dirty #2 > [ 350.148020] --------------------------------------------- > [ 350.148020] perf/9439 is trying to acquire lock: > [ 350.148020] (&(&n->list_lock)->rlock){-.-...}, at: [] get_partial_node+0x5f/0x360 > [ 350.148020] > [ 350.148020] but task is already holding lock: > [ 350.148020] (&(&n->list_lock)->rlock){-.-...}, at: [] unfreeze_partials+0x199/0x3c0 > [ 350.148020] > [ 350.148020] other info that might help us debug this: > [ 350.148020] Possible unsafe locking scenario: > [ 350.148020] > [ 350.148020] CPU0 > [ 350.148020] ---- > [ 350.148020] lock(&(&n->list_lock)->rlock); > [ 350.148020] lock(&(&n->list_lock)->rlock); > [ 350.148020] > [ 350.148020] *** DEADLOCK *** > [ 350.148020] > [ 350.148020] May be due to missing lock nesting notation > [ 350.148020] > [ 350.148020] 2 locks held by perf/9439: > [ 350.148020] #0: (tasklist_lock){.+.+..}, at: [] release_task+0x9e/0x500 > [ 350.148020] #1: (&(&n->list_lock)->rlock){-.-...}, at: [] unfreeze_partials+0x199/0x3c0 > [ 350.148020] > [ 350.148020] stack backtrace: > [ 350.148020] Pid: 9439, comm: perf Not tainted 3.2.0-rc1-10791-g76a4b59-dirty #2 > [ 350.148020] Call Trace: > [ 350.148020] [] ? _raw_spin_unlock_irqrestore+0x38/0x80 > [ 350.148020] [] validate_chain+0xddf/0x1250 > [ 350.148020] [] ? native_sched_clock+0x29/0x80 > [ 350.148020] [] ? local_clock+0x4f/0x60 > [ 350.148020] [] ? trace_hardirqs_off_caller+0x29/0x130 > [ 350.148020] [] __lock_acquire+0x3cf/0xc00 > [ 350.148020] [] ? native_sched_clock+0x29/0x80 > [ 350.148020] [] lock_acquire+0x9d/0x1d0 > [ 350.148020] [] ? get_partial_node+0x5f/0x360 > [ 350.148020] [] ? native_sched_clock+0x29/0x80 > [ 350.148020] [] ? local_clock+0x4f/0x60 > [ 350.148020] [] _raw_spin_lock+0x40/0x80 > [ 350.148020] [] ? get_partial_node+0x5f/0x360 > [ 350.148020] [] get_partial_node+0x5f/0x360 > [ 350.148020] [] ? native_sched_clock+0x29/0x80 > [ 350.148020] [] ? native_sched_clock+0x29/0x80 > [ 350.148020] [] ? T.1029+0x36/0x3f0 > [ 350.148020] [] ? __debug_object_init+0x3ba/0x3d0 > [ 350.148020] [] T.1029+0x1b7/0x3f0 > [ 350.148020] [] ? __debug_object_init+0x3ba/0x3d0 > [ 350.148020] [] ? native_sched_clock+0x29/0x80 > [ 350.148020] [] ? __debug_object_init+0x3ba/0x3d0 > [ 350.148020] [] kmem_cache_alloc+0xf6/0x200 > [ 350.148020] [] __debug_object_init+0x3ba/0x3d0 > [ 350.148020] [] ? _raw_spin_unlock_irqrestore+0x38/0x80 > [ 350.148020] [] debug_object_init+0x1f/0x30 > [ 350.148020] [] rcuhead_fixup_activate+0x34/0xe0 > [ 350.148020] [] debug_object_fixup+0x13/0x20 > [ 350.148020] [] debug_object_activate+0xbc/0x160 > [ 350.148020] [] ? deactivate_slab+0x7c0/0x7c0 > [ 350.148020] [] __call_rcu+0x42/0x1d0 > [ 350.148020] [] call_rcu+0x15/0x20 > [ 350.148020] [] discard_slab+0x44/0x50 > [ 350.148020] [] unfreeze_partials+0x2ff/0x3c0 > [ 350.148020] [] ? native_sched_clock+0x29/0x80 > [ 350.148020] [] ? put_cpu_partial+0x99/0xe0 > [ 350.148020] [] put_cpu_partial+0xa1/0xe0 > [ 350.148020] [] __slab_free+0x102/0x470 > [ 350.148020] [] ? __cleanup_sighand+0x27/0x30 > [ 350.148020] [] kmem_cache_free+0x220/0x230 > [ 350.148020] [] __cleanup_sighand+0x27/0x30 > [ 350.148020] [] release_task+0x23b/0x500 > [ 350.148020] [] ? release_task+0x1d/0x500 > [ 350.148020] [] wait_consider_task+0x8f3/0xc40 > [ 350.148020] [] do_wait+0x121/0x340 > [ 350.148020] [] sys_wait4+0xa3/0x100 > [ 350.148020] [] ? wait_noreap_copyout+0x150/0x150 > [ 350.148020] [] system_call_fastpath+0x16/0x1b >