From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Beregalov Subject: Re: [PATCH] kill-the-bkl/reiserfs: Fix induced mm->mmap_sem to sysfs_mutex dependency Date: Tue, 22 Sep 2009 17:55:43 +0400 Message-ID: References: <1251167570-5233-1-git-send-email-fweisbec@gmail.com> <20090826201330.GA18761@orion> <20090914203749.GF6045@nowhere> <20090916203747.GB5068@nowhere> <20090917050639.GA5060@nowhere> Mime-Version: 1.0 Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=cJnrkxG7oqlMCtBaE2Bj6oEfKAeLnCGXe30DlupiERM=; b=VzSRBRc+L0B6lNrxrJ0Pjuzo5lgmUIdscWaEE3KQPa03Fuv6V6bP05CsZuqfBh4vRQ ZGqSjsC7uQAa6ItiDZYlfe3BtqQT1gfS6Zc7wFsYkMkmmT8fUcEG3hfKo+DZ+A6xB8eI KoO0DqZAyVIGcxD4ynmlHt/qZDcSXLHKVOgW8= In-Reply-To: <20090917050639.GA5060@nowhere> Sender: reiserfs-devel-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Frederic Weisbecker Cc: LKML , Reiserfs Hi Frederic. Another very similar warning. (smp 2*2core) v2.6.31-7068-g43c1266 plus 193be0ee1 kill-the-bkl/reiserfs: Fix induced mm->mmap_sem to sysfs_mutex dependency [ INFO: possible circular locking dependency detected ] 2.6.31-07095-g25a3912 #4 ------------------------------------------------------- udevadm/790 is trying to acquire lock: (&mm->mmap_sem){++++++}, at: [] might_fault+0x72/0xc0 but task is already holding lock: (sysfs_mutex){+.+.+.}, at: [] sysfs_readdir+0x7c/0x260 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #5 (sysfs_mutex){+.+.+.}: [] __lock_acquire+0xc90/0x1290 [] lock_acquire+0x9a/0xd0 [] __mutex_lock_common+0x65/0x440 [] mutex_lock_nested+0x40/0x60 [] sysfs_addrm_start+0x35/0xc0 [] create_dir+0x51/0xb0 [] sysfs_create_dir+0x36/0x60 [] kobject_add_internal+0xa7/0x270 [] kobject_add_varg+0x3a/0x70 [] kobject_init_and_add+0x3e/0x60 [] sysfs_slab_add+0x7d/0x1e0 [] sysfs_add_func+0x5f/0xa0 [] worker_thread+0x16e/0x270 [] kthread+0x7c/0x90 [] kernel_thread_helper+0x7/0x7c -> #4 (slub_lock){+++++.}: [] __lock_acquire+0xc90/0x1290 [] lock_acquire+0x9a/0xd0 [] down_read+0x52/0xb0 [] slab_cpuup_callback+0x4a/0x196 [] notifier_call_chain+0x4d/0x90 [] __raw_notifier_call_chain+0x25/0x40 [] cpu_up+0xdd/0x1a6 [] kernel_init+0xac/0x1a8 [] kernel_thread_helper+0x7/0x7c -> #3 (cpu_hotplug.lock){+.+.+.}: [] __lock_acquire+0xc90/0x1290 [] lock_acquire+0x9a/0xd0 [] __mutex_lock_common+0x65/0x440 [] mutex_lock_nested+0x40/0x60 [] cpu_up+0x9e/0x1a6 [] kernel_init+0xac/0x1a8 [] kernel_thread_helper+0x7/0x7c -> #2 (cpu_add_remove_lock){+.+.+.}: [] __lock_acquire+0xc90/0x1290 [] lock_acquire+0x9a/0xd0 [] __mutex_lock_common+0x65/0x440 [] mutex_lock_nested+0x40/0x60 [] cpu_maps_update_begin+0x1d/0x40 [] __create_workqueue_key+0x9c/0x210 [] journal_init+0x9a4/0xa60 [] reiserfs_fill_super+0x35f/0xdf0 [] get_sb_bdev+0x138/0x180 [] get_super_block+0x2d/0x50 [] vfs_kern_mount+0x51/0xc0 [] do_kern_mount+0x4d/0x100 [] do_mount+0x21a/0x720 [] sys_mount+0x8c/0xe0 [] mount_block_root+0xcf/0x26b [] mount_root+0x64/0x7b [] prepare_namespace+0x11c/0x167 [] kernel_init+0x188/0x1a8 [] kernel_thread_helper+0x7/0x7c -> #1 (&REISERFS_SB(s)->lock){+.+.+.}: [] __lock_acquire+0xc90/0x1290 [] lock_acquire+0x9a/0xd0 [] __mutex_lock_common+0x65/0x440 [] mutex_lock_nested+0x40/0x60 [] reiserfs_write_lock_once+0x32/0x70 [] reiserfs_get_block+0x6b/0x1510 [] do_mpage_readpage+0x168/0x510 [] mpage_readpages+0xaf/0x100 [] reiserfs_readpages+0x25/0x40 [] __do_page_cache_readahead+0x1fd/0x2a0 [] ra_submit+0x2d/0x50 [] filemap_fault+0x436/0x470 [] __do_fault+0x54/0x410 [] handle_mm_fault+0x1c1/0x680 [] do_page_fault+0x115/0x380 [] error_code+0x78/0x80 [] padzero+0x37/0x50 [] load_elf_binary+0x63d/0x1500 [] search_binary_handler+0x1a1/0x330 [] do_execve+0x1f8/0x270 [] sys_execve+0x33/0x80 [] syscall_call+0x7/0xb -> #0 (&mm->mmap_sem){++++++}: [] __lock_acquire+0x1248/0x1290 [] lock_acquire+0x9a/0xd0 [] might_fault+0xa3/0xc0 [] copy_to_user+0x41/0x130 [] filldir64+0xcc/0x120 [] sysfs_readdir+0xfa/0x260 [] vfs_readdir+0x9e/0xc0 [] sys_getdents64+0x7a/0xe0 [] sysenter_do_call+0x12/0x36 other info that might help us debug this: 2 locks held by udevadm/790: #0: (&type->i_mutex_dir_key){+.+.+.}, at: [] vfs_readdir+0x6a/0xc0 #1: (sysfs_mutex){+.+.+.}, at: [] sysfs_readdir+0x7c/0x260 stack backtrace: Pid: 790, comm: udevadm Not tainted 2.6.31-07095-g25a3912 #4 Call Trace: [] ? printk+0x23/0x37 [] print_circular_bug+0xe8/0x100 [] __lock_acquire+0x1248/0x1290 [] lock_acquire+0x9a/0xd0 [] ? might_fault+0x72/0xc0 [] ? might_fault+0x72/0xc0 [] might_fault+0xa3/0xc0 [] ? might_fault+0x72/0xc0 [] copy_to_user+0x41/0x130 [] filldir64+0xcc/0x120 [] sysfs_readdir+0xfa/0x260 [] ? filldir64+0x0/0x120 [] vfs_readdir+0x9e/0xc0 [] ? filldir64+0x0/0x120 [] sys_getdents64+0x7a/0xe0 [] sysenter_do_call+0x12/0x36