From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757404AbXFGLNU (ORCPT ); Thu, 7 Jun 2007 07:13:20 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752702AbXFGLNM (ORCPT ); Thu, 7 Jun 2007 07:13:12 -0400 Received: from atrey.karlin.mff.cuni.cz ([195.113.31.123]:43668 "EHLO atrey.karlin.mff.cuni.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751510AbXFGLNJ (ORCPT ); Thu, 7 Jun 2007 07:13:09 -0400 Date: Thu, 7 Jun 2007 13:13:06 +0200 From: Jan Kara To: "alpha @ steudten Engineering" Cc: LKML Subject: Re: Kernel 2.6.20: possible circular locking dependency detected Message-ID: <20070607111306.GF31483@atrey.karlin.mff.cuni.cz> References: <465D6F57.5040709@steudten.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <465D6F57.5040709@steudten.com> User-Agent: Mutt/1.5.9i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Thanks for report. It's actually a false warning and should be fixed in 2.6.22 or so... Honza > Linux version 2.6.20-1.2948.self (rpmbuild@merlin.linux.alpha) (gcc version 4.1.1 20070105 (Red Hat 4.1.1-51)) #1 SMP > Mon May 7 11:07:53 CEST 2007 > > ======================================================= > [ INFO: possible circular locking dependency detected ] > 2.6.20-1.2948.self #1 > ------------------------------------------------------- > squid/4111 is trying to acquire lock: > (tty_mutex){--..}, at: [] print_warning+0x8b/0x12e > > but task is already holding lock: > (&s->s_dquot.dqptr_sem){----}, at: [] dquot_alloc_inode+0x34/0x10a > > which lock already depends on the new lock. > > > the existing dependency chain (in reverse order) is: > > -> #4 (&s->s_dquot.dqptr_sem){----}: > [] __lock_acquire+0x950/0xa70 > [] dquot_alloc_space+0x42/0x155 > [] lock_acquire+0x67/0x89 > [] dquot_alloc_space+0x42/0x155 > [] down_read+0x38/0x49 > [] dquot_alloc_space+0x42/0x155 > [] dquot_alloc_space+0x42/0x155 > [] ext3_new_blocks+0x83/0x5c4 > [] mb_cache_entry_find_first+0x29/0x5b > [] ext3_new_block+0x20/0x25 > [] ext3_xattr_block_set+0x57b/0x7ce > [] __ext3_get_inode_loc+0x10f/0x2fb > [] journal_get_write_access+0x21/0x26 > [] ext3_xattr_set_handle+0x37f/0x47f > [] ext3_init_security+0x70/0x91 > [] ext3_new_inode+0x877/0x98b > [] start_this_handle+0x256/0x341 > [] _spin_unlock+0x14/0x1c > [] start_this_handle+0x325/0x341 > [] cache_alloc_debugcheck_after+0xc4/0x136 > [] trace_hardirqs_on+0x141/0x164 > [] journal_stop+0x1ce/0x1da > [] journal_start+0xaf/0xdd > [] dquot_initialize+0x21/0x87 > [] ext3_create+0x7b/0xe2 > [] vfs_create+0xca/0x134 > [] open_namei+0x177/0x5a2 > [] get_unused_fd+0x22/0xbd > [] __handle_mm_fault+0x8c0/0x8e2 > [] do_filp_open+0x25/0x39 > [] _spin_unlock+0x14/0x1c > [] get_unused_fd+0xb3/0xbd > [] do_sys_open+0x42/0xbe > [] sys_open+0x1c/0x1e > [] syscall_call+0x7/0xb > [] 0xffffffff > > -> #3 (&ei->xattr_sem){----}: > [] __lock_acquire+0x950/0xa70 > [] ext3_xattr_get+0x2e/0x239 > [] lock_acquire+0x67/0x89 > [] ext3_xattr_get+0x2e/0x239 > [] down_read+0x38/0x49 > [] ext3_xattr_get+0x2e/0x239 > [] ext3_xattr_get+0x2e/0x239 > [] mark_held_locks+0x46/0x62 > [] __mutex_lock_slowpath+0x292/0x2af > [] cache_alloc_debugcheck_after+0xc4/0x136 > [] ext3_xattr_security_get+0x41/0x4b > [] generic_getxattr+0x41/0x47 > [] inode_doinit_with_dentry+0x16e/0x4ba > [] ext3_xattr_security_get+0x41/0x4b > [] generic_getxattr+0x0/0x47 > [] superblock_doinit+0x6c3/0x751 > [] selinux_complete_init+0x64/0xb6 > [] down_read+0x38/0x49 > [] selinux_complete_init+0x73/0xb6 > [] security_load_policy+0xed/0x275 > [] _spin_unlock_irqrestore+0x3e/0x4d > [] mark_held_locks+0x46/0x62 > [] _spin_unlock_irqrestore+0x3e/0x4d > [] _spin_unlock_irqrestore+0x3e/0x4d > [] trace_hardirqs_on+0x141/0x164 > [] delayacct_end+0x55/0x77 > [] delayacct_end+0x70/0x77 > [] sync_page+0x0/0x3b > [] __delayacct_blkio_end+0x5b/0x5e > [] __handle_mm_fault+0x263/0x8e2 > [] __lock_page+0x58/0x5e > [] __handle_mm_fault+0x263/0x8e2 > [] kunmap_atomic+0x54/0x61 > [] __handle_mm_fault+0x8c0/0x8e2 > [] do_page_fault+0x16b/0x4f2 > [] up_read+0x14/0x28 > [] do_page_fault+0x291/0x4f2 > [] restore_nocheck+0x12/0x15 > [] restore_nocheck+0x12/0x15 > [] __copy_from_user_ll+0xcb/0xd6 > [] sel_write_load+0xa6/0x2dd > [] sel_write_load+0x0/0x2dd > [] vfs_write+0xa8/0x154 > [] sys_write+0x41/0x67 > [] syscall_call+0x7/0xb > [] 0xffffffff > > -> #2 (&isec->lock){--..}: > [] __lock_acquire+0x950/0xa70 > [] inode_doinit_with_dentry+0x35/0x4ba > [] check_usage+0x24/0x245 > [] lock_acquire+0x67/0x89 > [] inode_doinit_with_dentry+0x35/0x4ba > [] __mutex_lock_slowpath+0x106/0x2af > [] inode_doinit_with_dentry+0x35/0x4ba > [] __might_sleep+0x21/0xf0 > [] inode_doinit_with_dentry+0x35/0x4ba > [] lock_release+0x16b/0x175 > [] d_instantiate+0x7e/0x82 > [] sysfs_create+0x85/0xb6 > [] init_dir+0x0/0x1a > [] create_dir+0x9e/0x19a > [] sysfs_create_dir+0x45/0x5f > [] kobject_add+0xdd/0x194 > [] subsystem_register+0xf/0x1c > [] mnt_init+0xe8/0x1c6 > [] vfs_caches_init+0x135/0x144 > [] security_init+0x2d/0x3d > [] start_kernel+0x2cb/0x427 > [] unknown_bootoption+0x0/0x202 > [] 0xffffffff > > -> #1 (&sysfs_inode_imutex_key){--..}: > [] __lock_acquire+0x950/0xa70 > [] sysfs_hash_and_remove+0x34/0x116 > [] __link_path_walk+0xad6/0xc13 > [] trace_hardirqs_on+0x141/0x164 > [] lock_acquire+0x67/0x89 > [] sysfs_hash_and_remove+0x34/0x116 > [] __mutex_lock_slowpath+0x106/0x2af > [] sysfs_hash_and_remove+0x34/0x116 > [] sysfs_hash_and_remove+0x34/0x116 > [] device_remove_file+0x1c/0x28 > [] device_del+0x29/0x1b8 > [] device_unregister+0x8/0x10 > [] vcs_remove_sysfs+0x17/0x31 > [] con_close+0x49/0x5b > [] release_dev+0x210/0x61e > [] tty_open+0x233/0x2ba > [] chrdev_open+0x10b/0x138 > [] chrdev_open+0x0/0x138 > [] fd_install+0x21/0x49 > [] nameidata_to_filp+0x24/0x33 > [] sys_close+0x21/0xa7 > [] tty_release+0xf/0x18 > [] __fput+0xb5/0x16b > [] filp_close+0x51/0x58 > [] sys_close+0x70/0xa7 > [] syscall_call+0x7/0xb > [] 0xffffffff > > -> #0 (tty_mutex){--..}: > [] __lock_acquire+0x85a/0xa70 > [] print_warning+0x8b/0x12e > [] __mutex_unlock_slowpath+0x13c/0x150 > [] mark_held_locks+0x46/0x62 > [] __mutex_unlock_slowpath+0x13c/0x150 > [] lock_acquire+0x67/0x89 > [] print_warning+0x8b/0x12e > [] __mutex_lock_slowpath+0x106/0x2af > [] print_warning+0x8b/0x12e > [] print_warning+0x8b/0x12e > [] dquot_alloc_inode+0xec/0x10a > [] ext3_new_inode+0x857/0x98b > [] start_this_handle+0x256/0x341 > [] _spin_unlock+0x14/0x1c > [] start_this_handle+0x325/0x341 > [] cache_alloc_debugcheck_after+0xc4/0x136 > [] trace_hardirqs_on+0x141/0x164 > [] journal_stop+0x1ce/0x1da > [] journal_start+0xaf/0xdd > [] ext3_create+0x7b/0xe2 > [] vfs_create+0xca/0x134 > [] open_namei+0x177/0x5a2 > [] get_unused_fd+0x22/0xbd > [] __audit_getname+0x84/0xdd > [] do_filp_open+0x25/0x39 > [] _spin_unlock+0x14/0x1c > [] get_unused_fd+0xb3/0xbd > [] _read_unlock+0x14/0x1c > [] do_sys_open+0x42/0xbe > [] sys_open+0x1c/0x1e > [] syscall_call+0x7/0xb > [] 0xffffffff > > other info that might help us debug this: > > 2 locks held by squid/4111: > #0: (&inode->i_mutex){--..}, at: [] open_namei+0xe2/0x5a2 > #1: (&s->s_dquot.dqptr_sem){----}, at: [] dquot_alloc_inode+0x34/0x10a > > stack backtrace: > [] print_circular_bug_tail+0x5f/0x67 > [] __lock_acquire+0x85a/0xa70 > [] print_warning+0x8b/0x12e > [] __mutex_unlock_slowpath+0x13c/0x150 > [] mark_held_locks+0x46/0x62 > [] __mutex_unlock_slowpath+0x13c/0x150 > [] lock_acquire+0x67/0x89 > [] print_warning+0x8b/0x12e > [] __mutex_lock_slowpath+0x106/0x2af > [] print_warning+0x8b/0x12e > [] print_warning+0x8b/0x12e > [] dquot_alloc_inode+0xec/0x10a > [] ext3_new_inode+0x857/0x98b > [] start_this_handle+0x256/0x341 > [] _spin_unlock+0x14/0x1c > [] start_this_handle+0x325/0x341 > [] cache_alloc_debugcheck_after+0xc4/0x136 > [] trace_hardirqs_on+0x141/0x164 > [] journal_stop+0x1ce/0x1da > [] journal_start+0xaf/0xdd > [] ext3_create+0x7b/0xe2 > [] vfs_create+0xca/0x134 > [] open_namei+0x177/0x5a2 > [] get_unused_fd+0x22/0xbd > [] __audit_getname+0x84/0xdd > [] do_filp_open+0x25/0x39 > [] _spin_unlock+0x14/0x1c > [] get_unused_fd+0xb3/0xbd > [] _read_unlock+0x14/0x1c > [] do_sys_open+0x42/0xbe > [] sys_open+0x1c/0x1e > [] syscall_call+0x7/0xb > ======================= > > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Jan Kara SuSE CR Labs