From mboxrd@z Thu Jan 1 00:00:00 1970 From: leroy christophe Subject: [BUG Linux 3.11] Bonding : possible circular locking dependency detected Date: Wed, 09 Oct 2013 14:41:52 +0200 Message-ID: <52554F10.9000904@c-s.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit To: netdev Return-path: Received: from pegase1.c-s.fr ([93.17.236.30]:21143 "EHLO mailhub1.si.c-s.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754947Ab3JIMly (ORCPT ); Wed, 9 Oct 2013 08:41:54 -0400 Received: from localhost (mailhub1-int [192.168.12.234]) by localhost (Postfix) with ESMTP id EC0621C830F for ; Wed, 9 Oct 2013 14:41:52 +0200 (CEST) Received: from mailhub1.si.c-s.fr ([192.168.12.234]) by localhost (mailhub1.c-s.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id H7D38XlZzJ4c for ; Wed, 9 Oct 2013 14:41:52 +0200 (CEST) Received: from messagerie.si.c-s.fr (messagerie [192.168.25.192]) by pegase1.c-s.fr (Postfix) with ESMTP id CB59D1C8187 for ; Wed, 9 Oct 2013 14:41:52 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id BAC2DC7392 for ; Wed, 9 Oct 2013 14:41:52 +0200 (CEST) Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id wz7P6ySL4Tng for ; Wed, 9 Oct 2013 14:41:52 +0200 (CEST) Received: from [172.25.231.4] (unknown [172.25.231.4]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 78EC4C7391 for ; Wed, 9 Oct 2013 14:41:52 +0200 (CEST) Sender: netdev-owner@vger.kernel.org List-ID: When configuring bonding in mode 1 with mii_status polling, I get the following warning [ 841.582838] ====================================================== [ 841.588946] [ INFO: possible circular locking dependency detected ] [ 841.595168] 3.11.0-draft-drv-999-svn5204~_knld-999-svn5212 #220 Tainted: G W [ 841.602975] ------------------------------------------------------- [ 841.609184] kworker/0:2/747 is trying to acquire lock: [ 841.614246] (&bond->curr_slave_lock){++.+..}, at: [] bond_set_rx_mode+0xb4/0x10c [ 841.622511] [ 841.622511] but task is already holding lock: [ 841.628274] (&bonding_netdev_addr_lock_key){+.....}, at: [] __dev_mc_add+0x3c/0x90 [ 841.636711] [ 841.636711] which lock already depends on the new lock. [ 841.636711] [ 841.644799] [ 841.644799] the existing dependency chain (in reverse order) is: [ 841.652201] -> #1 (&bonding_netdev_addr_lock_key){+.....}: [ 841.657792] [] __lock_acquire+0x394/0xb8c [ 841.663216] [] lock_acquire+0xb4/0x16c [ 841.668379] [] _raw_spin_lock_bh+0x54/0x70 [ 841.673886] [] bond_change_active_slave+0x278/0x5d0 [ 841.680169] [] bond_select_active_slave+0xa4/0x1c4 [ 841.686365] [] bond_mii_monitor+0x4a4/0x6e0 [ 841.691960] [] process_one_work+0x204/0x5ac [ 841.697554] [] worker_thread+0x158/0x43c [ 841.702889] [] kthread+0xc8/0xcc [ 841.707536] [] ret_from_kernel_thread+0x5c/0x64 [ 841.713483] -> #0 (&bond->curr_slave_lock){++.+..}: [ 841.718463] [] validate_chain+0xec4/0x1074 [ 841.723974] [] __lock_acquire+0x394/0xb8c [ 841.729396] [] lock_acquire+0xb4/0x16c [ 841.734560] [] _raw_read_lock+0x50/0x6c [ 841.739809] [] bond_set_rx_mode+0xb4/0x10c [ 841.745318] [] __dev_set_rx_mode+0x80/0xd0 [ 841.750825] [] __dev_mc_add+0x68/0x90 [ 841.755902] [] dev_mc_add+0x20/0x30 [ 841.760808] [] igmp6_group_added+0x108/0x1e4 [ 841.766488] [] ipv6_mc_up+0x44/0x70 [ 841.771393] [] ipv6_find_idev+0x58/0xb0 [ 841.776643] [] addrconf_add_dev+0x38/0xc0 [ 841.782065] [] addrconf_notify+0x2b8/0x978 [ 841.787572] [] notifier_call_chain+0x78/0xdc [ 841.793252] [] raw_notifier_call_chain+0x24/0x34 [ 841.799277] [] call_netdevice_notifiers_info+0x74/0x90 [ 841.805818] [] call_netdevice_notifiers+0x20/0x30 [ 841.811928] [] netdev_state_change+0x38/0x5c [ 841.817608] [] linkwatch_do_dev+0x64/0xa8 [ 841.823031] [] __linkwatch_run_queue+0x10c/0x214 [ 841.829054] [] linkwatch_event+0x38/0x4c [ 841.834390] [] process_one_work+0x204/0x5ac [ 841.839984] [] worker_thread+0x158/0x43c [ 841.845320] [] kthread+0xc8/0xcc [ 841.849966] [] ret_from_kernel_thread+0x5c/0x64 [ 841.855908] [ 841.855908] other info that might help us debug this: [ 841.855908] [ 841.863824] Possible unsafe locking scenario: [ 841.863824] [ 841.869674] CPU0 CPU1 [ 841.874149] ---- ---- [ 841.878620] lock(&bonding_netdev_addr_lock_key); [ 841.883352] lock(&bond->curr_slave_lock); [ 841.889979] lock(&bonding_netdev_addr_lock_key); [ 841.897206] lock(&bond->curr_slave_lock); [ 841.901340] [ 841.901340] *** DEADLOCK *** [ 841.901340] [ 841.907217] 7 locks held by kworker/0:2/747: [ 841.911416] #0: (events){.+.+..}, at: [] process_one_work+0x17c/0x5ac [ 841.918822] #1: ((linkwatch_work).work){+.+...}, at: [] process_one_work+0x17c/0x5ac [ 841.927515] #2: (rtnl_mutex){+.+.+.}, at: [] rtnl_lock+0x28/0x38 [ 841.934486] #3: (&ndev->lock){++--..}, at: [] ipv6_mc_up+0x30/0x70 [ 841.941627] #4: (&(&mc->mca_lock)->rlock){+.-...}, at: [] igmp6_group_added+0x54/0x1e4 [ 841.950492] #5: (&bonding_netdev_addr_lock_key){+.....}, at: [] __dev_mc_add+0x3c/0x90 [ 841.959356] #6: (&bond->lock){++.?..}, at: [] bond_set_rx_mode+0x40/0x10c [ 841.967097] [ 841.967097] stack backtrace: [ 841.971448] CPU: 0 PID: 747 Comm: kworker/0:2 Tainted: G W 3.11.0-draft-drv-999-svn5204~_knld-999-svn5212 #220 [ 841.982222] Workqueue: events linkwatch_event [ 841.986457] Call Trace: [ 841.988931] [c7b71a00] [c0007198] show_stack+0xa8/0x238 (unreliable) [ 841.995210] [c7b71a50] [c0405e8c] dump_stack+0x24/0x198 [ 842.000390] [c7b71a60] [c006dec8] print_circular_bug+0x1f8/0x320 [ 842.006313] [c7b71a90] [c006f5f4] validate_chain+0xec4/0x1074 [ 842.011993] [c7b71b20] [c006fb38] __lock_acquire+0x394/0xb8c [ 842.017585] [c7b71b80] [c00703e4] lock_acquire+0xb4/0x16c [ 842.022916] [c7b71bc0] [c040540c] _raw_read_lock+0x50/0x6c [ 842.028352] [c7b71be0] [c02654e4] bond_set_rx_mode+0xb4/0x10c [ 842.034029] [c7b71c00] [c02ce428] __dev_set_rx_mode+0x80/0xd0 [ 842.039698] [c7b71c20] [c02d9ee4] __dev_mc_add+0x68/0x90 [ 842.044945] [c7b71c40] [c02d9f5c] dev_mc_add+0x20/0x30 [ 842.050031] [c7b71c50] [c03ac1d4] igmp6_group_added+0x108/0x1e4 [ 842.055872] [c7b71c90] [c03ac2f4] ipv6_mc_up+0x44/0x70 [ 842.060958] [c7b71ca0] [c038e0cc] ipv6_find_idev+0x58/0xb0 [ 842.066373] [c7b71cb0] [c038e15c] addrconf_add_dev+0x38/0xc0 [ 842.071970] [c7b71cc0] [c0390ec0] addrconf_notify+0x2b8/0x978 [ 842.077652] [c7b71d60] [c004a974] notifier_call_chain+0x78/0xdc [ 842.083501] [c7b71d90] [c004ab08] raw_notifier_call_chain+0x24/0x34 [ 842.089716] [c7b71da0] [c02d2430] call_netdevice_notifiers_info+0x74/0x90 [ 842.096416] [c7b71dc0] [c02d246c] call_netdevice_notifiers+0x20/0x30 [ 842.102699] [c7b71de0] [c02d380c] netdev_state_change+0x38/0x5c [ 842.108567] [c7b71df0] [c02e6804] linkwatch_do_dev+0x64/0xa8 [ 842.114148] [c7b71e00] [c02e6c7c] __linkwatch_run_queue+0x10c/0x214 [ 842.120342] [c7b71e30] [c02e6dbc] linkwatch_event+0x38/0x4c [ 842.125858] [c7b71e40] [c0039acc] process_one_work+0x204/0x5ac [ 842.131611] [c7b71e80] [c0039fcc] worker_thread+0x158/0x43c [ 842.137117] [c7b71eb0] [c0043310] kthread+0xc8/0xcc [ 842.141943] [c7b71f40] [c000ea18] ret_from_kernel_thread+0x5c/0x64 Christophe