From mboxrd@z Thu Jan 1 00:00:00 1970 From: Or Gerlitz Subject: Re: [PATCH net-next V3 1/2] IB/ipoib: Add rtnl_link_ops support Date: Thu, 13 Sep 2012 14:28:35 +0300 Message-ID: <5051C363.7030505@mellanox.com> References: <1345724119-32110-1-git-send-email-ogerlitz@mellanox.com> <1345724119-32110-2-git-send-email-ogerlitz@mellanox.com> <5050668B.1010105@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Cc: Patrick McHardy , Eric Dumazet , , Shlomo Pongratz To: Rami Rosen Return-path: Received: from eu1sys200aog115.obsmtp.com ([207.126.144.139]:46986 "HELO eu1sys200aog115.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1756392Ab2IML2l (ORCPT ); Thu, 13 Sep 2012 07:28:41 -0400 In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: On 12/09/2012 17:53, Rami Rosen wrote: > From the dump of CPU #1, it seems indeed not related at all to "modprobe -r". > > Could it be that there is some IB stack sysfs write activity? > (regardless of the modprobe -r" you issued) ? I see some candidates for it. > > delete_child() is a method of the IB stack (ipoib/ipoib_main.c) > > Maybe in order to help debug the problem, you might try to add in > delete_child() method, print of the name of the attribute which is being deleted? > > (struct device_attribute has a a member "struct attribute attr", > which in turn has "const char *name"). > > the existing dependency chain (in reverse order) is: > > -> #1 (rtnl_mutex){+.+.+.}: > [] lock_acquire+0x14f/0x19b > [] mutex_lock_nested+0x64/0x2ce > [] rtnl_lock+0x12/0x14 > [] netdev_run_todo+0xa5/0x27e > [] rtnl_unlock+0x9/0xb > [] ipoib_vlan_delete+0x111/0x148 [ib_ipoib] > [] delete_child+0x44/0x60 [ib_ipoib] > [] dev_attr_store+0x1b/0x1d > [] sysfs_write_file+0x103/0x13f > [] vfs_write+0xae/0x133 > [] sys_write+0x45/0x6c > [] system_call_fastpath+0x16/0x1b I've added code in ipoib_delete_child to print the caller PID and dump the stack, its triggeredwhen I do "echo 0x8001 > /sys/class/net/ib0/delete_child" but the lockdep warningis raised only when I actually unload the module, and no print... that is ipoib_delete_child isn't called. Or.