From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751221AbWGKLtL (ORCPT ); Tue, 11 Jul 2006 07:49:11 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751223AbWGKLtL (ORCPT ); Tue, 11 Jul 2006 07:49:11 -0400 Received: from ns.virtualhost.dk ([195.184.98.160]:12843 "EHLO virtualhost.dk") by vger.kernel.org with ESMTP id S1751221AbWGKLtK (ORCPT ); Tue, 11 Jul 2006 07:49:10 -0400 Date: Tue, 11 Jul 2006 13:51:44 +0200 From: Jens Axboe To: linux-kernel@vger.kernel.org Cc: john.ronciak@intel.com, jesse.brandeburg@intel.com, trond.myklebust@fys.uio.no Subject: e1000 vs nfs/net circular locking report Message-ID: <20060711115143.GB4113@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Hi, Upon cd'ing to an nfs mounted directory, I received this report. It's perfectly reproducible. ======================================================= [ INFO: possible circular locking dependency detected ] ------------------------------------------------------- bash/9673 is trying to acquire lock: (sk_lock-AF_INET){--..}, at: [] tcp_sendmsg+0x14/0xb20 but task is already holding lock: (&inode->i_mutex){--..}, at: [] mutex_lock+0x1c/0x1f which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (&inode->i_mutex){--..}: [] lock_acquire+0x5d/0x79 [] __mutex_lock_slowpath+0x6e/0x296 [] mutex_lock+0x1c/0x1f [] create_dir+0x1e/0x1b8 [] sysfs_create_dir+0x2d/0x67 [] kobject_add+0x8e/0x199 [] class_device_add+0xaf/0x43d [] netdev_register_sysfs+0x6b/0x80 [] register_netdevice+0x22d/0x3e4 [] register_netdev+0x59/0x6c [] e1000_probe+0xb5d/0xcb3 [] pci_device_probe+0x44/0x5f [] driver_probe_device+0x3e/0xb0 [] __driver_attach+0x8a/0x8c [] bus_for_each_dev+0x43/0x61 [] driver_attach+0x19/0x1b [] bus_add_driver+0x70/0x12c [] driver_register+0x5d/0x8d [] __pci_register_driver+0x4f/0x6a [] e1000_init_module+0x42/0x50 [] init+0x10f/0x30a [] kernel_thread_helper+0x5/0xb -> #1 (rtnl_mutex){--..}: [] lock_acquire+0x5d/0x79 [] __mutex_lock_slowpath+0x6e/0x296 [] mutex_lock+0x1c/0x1f [] rtnl_lock+0xd/0xf [] ip_mc_join_group+0x32/0xde [] ip_setsockopt+0x860/0xb1f [] udp_setsockopt+0x23/0xa2 [] sock_common_setsockopt+0x1e/0x25 [] sys_setsockopt+0x4e/0x8b [] sys_socketcall+0x1f1/0x254 [] sysenter_past_esp+0x56/0x8d -> #0 (sk_lock-AF_INET){--..}: [] lock_acquire+0x5d/0x79 [] lock_sock+0xd7/0xe4 [] tcp_sendmsg+0x14/0xb20 [] inet_sendmsg+0x2e/0x4d [] sock_sendmsg+0xcf/0xf3 [] kernel_sendmsg+0x28/0x37 [] xs_tcp_send_request+0x1d4/0x381 [] xprt_transmit+0x45/0x200 [] call_transmit+0x15c/0x216 [] __rpc_execute+0x6d/0x1f2 [] rpc_execute+0x14/0x16 [] rpc_call_sync+0x8d/0xa2 [] nfs3_rpc_wrapper+0x43/0x66 [] nfs3_proc_lookup+0xc9/0x153 [] nfs_lookup+0xc8/0x1f7 [] do_lookup+0x10d/0x13a [] __link_path_walk+0x383/0xedb [] link_path_walk+0x46/0xd2 [] do_path_lookup+0xbd/0x268 [] __user_walk_fd+0x32/0x4a [] vfs_stat_fd+0x1b/0x41 [] vfs_stat+0x11/0x13 [] sys_stat64+0x14/0x28 [] sysenter_past_esp+0x56/0x8d other info that might help us debug this: 1 lock held by bash/9673: #0: (&inode->i_mutex){--..}, at: [] mutex_lock+0x1c/0x1f stack backtrace: [] show_trace+0x12/0x14 [] dump_stack+0x19/0x1b [] print_circular_bug_tail+0x5d/0x66 [] __lock_acquire+0xa5e/0xcf5 [] lock_acquire+0x5d/0x79 [] lock_sock+0xd7/0xe4 [] tcp_sendmsg+0x14/0xb20 [] inet_sendmsg+0x2e/0x4d [] sock_sendmsg+0xcf/0xf3 [] kernel_sendmsg+0x28/0x37 [] xs_tcp_send_request+0x1d4/0x381 [] xprt_transmit+0x45/0x200 [] call_transmit+0x15c/0x216 [] __rpc_execute+0x6d/0x1f2 [] rpc_execute+0x14/0x16 [] rpc_call_sync+0x8d/0xa2 [] nfs3_rpc_wrapper+0x43/0x66 [] nfs3_proc_lookup+0xc9/0x153 [] nfs_lookup+0xc8/0x1f7 [] do_lookup+0x10d/0x13a [] __link_path_walk+0x383/0xedb [] link_path_walk+0x46/0xd2 [] do_path_lookup+0xbd/0x268 [] __user_walk_fd+0x32/0x4a [] vfs_stat_fd+0x1b/0x41 [] vfs_stat+0x11/0x13 [] sys_stat64+0x14/0x28 [] sysenter_past_esp+0x56/0x8d -- Jens Axboe