From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel J Blueman Subject: [2.6.38-rc1] btrfs potential false-positive lockdep report... Date: Thu, 20 Jan 2011 10:53:51 +0700 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Cc: Linux Kernel , Linux BTRFS , Josef Bacik To: Chris Mason Return-path: List-ID: I saw a lockdep report with an instrumented 2.6.38-rc1 kernel [1]. Checking the code, it looks more likely a false-positive due to the lock manipulation to satisfy lockdep, since CONFIG_DEBUG_LOCK_ALLOC is defined. Is this the case? Thanks, Daniel --- [1] ============================================= [ INFO: possible recursive locking detected ] 2.6.38-rc1-340cd+ #7 --------------------------------------------- gnome-screensav/4276 is trying to acquire lock: (&(&eb->lock)->rlock){+.+...}, at: [] btrfs_try_spin_lock+0x58/0x100 but task is already holding lock: (&(&eb->lock)->rlock){+.+...}, at: [] btrfs_clear_lock_blocking+0x1d/0x30 other info that might help us debug this: 2 locks held by gnome-screensav/4276: #0: (&sb->s_type->i_mutex_key#10){+.+.+.}, at: [] do_lookup+0x1c1/0x2c0 #1: (&(&eb->lock)->rlock){+.+...}, at: [] btrfs_clear_lock_blocking+0x1d/0x30 stack backtrace: Pid: 4276, comm: gnome-screensav Not tainted 2.6.38-rc1-340cd+ #7 Call Trace: [] ? __lock_acquire+0x1040/0x1d10 [] ? trace_hardirqs_on_caller+0x15d/0x1b0 [] ? native_sched_clock+0x2c/0x80 [] ? sched_clock+0x13/0x20 [] ? lock_acquire+0xc6/0x280 [] ? btrfs_try_spin_lock+0x58/0x100 [] ? _raw_spin_lock+0x3b/0x70 [] ? btrfs_try_spin_lock+0x58/0x100 [] ? btrfs_clear_lock_blocking+0x1d/0x30 [] ? btrfs_try_spin_lock+0x58/0x100 [] ? btrfs_search_slot+0x917/0xa10 [] ? sched_clock+0x13/0x20 [] ? btrfs_lookup_dir_item+0x7a/0x110 [] ? trace_hardirqs_on+0xd/0x10 [] ? kmem_cache_alloc+0x163/0x2f0 [] ? btrfs_lookup_dentry+0xa4/0x480 [] ? put_lock_stats+0xe/0x40 [] ? lock_release_holdtime+0xac/0x150 [] ? get_parent_ip+0x11/0x50 [] ? sub_preempt_count+0x9d/0xd0 [] ? btrfs_lookup+0x11/0x30 [] ? d_alloc_and_lookup+0x40/0x80 [] ? d_lookup+0x30/0x60 [] ? do_lookup+0x1e3/0x2c0 [] ? generic_permission+0x1e/0xb0 [] ? link_path_walk+0x141/0xbd0 [] ? path_init_rcu+0x1b8/0x280 [] ? do_path_lookup+0x56/0x130 [] ? user_path_at+0x52/0xa0 [] ? up_read+0x1e/0x40 [] ? do_page_fault+0x1f8/0x510 [] ? sched_clock_cpu+0xdd/0x120 [] ? vfs_fstatat+0x41/0x80 [] ? put_lock_stats+0xe/0x40 [] ? lock_release_holdtime+0xac/0x150 [] ? vfs_stat+0x16/0x20 [] ? sys_newstat+0x1f/0x50 [] ? trace_hardirqs_on_caller+0x15d/0x1b0 [] ? trace_hardirqs_on_thunk+0x3a/0x3f [] ? system_call_fastpath+0x16/0x1b -- Daniel J Blueman