xfs
[Top] [All Lists]

Re: lockdep warning in 3.14-rc1

To: Cody P Schafer <cody@xxxxxxxxxxxxxxxxxx>
Subject: Re: lockdep warning in 3.14-rc1
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Sat, 8 Feb 2014 19:32:35 +1100
Cc: xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <52F57E6C.10907@xxxxxxxxxxxxxxxxxx>
References: <52F57E6C.10907@xxxxxxxxxxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Fri, Feb 07, 2014 at 04:46:36PM -0800, Cody P Schafer wrote:
> Appears consistently during boot up.
....

> [    2.080292]        CPU0                    CPU1
> [    2.080295]        ----                    ----
> [    2.080298]   lock(&(&ip->i_lock)->mr_lock);
> [    2.080303]                                lock(&mm->mmap_sem);
> [    2.080307]                                lock(&(&ip->i_lock)->mr_lock);
> [    2.080312]   lock(&mm->mmap_sem);
> [    2.080316] 
>  *** DEADLOCK ***
> 
> [    2.080321] 2 locks held by systemd/1:
> [    2.080323]  #0:  (&type->i_mutex_dir_key#2){+.+.+.}, at: 
> [<c000000000297470>] .iterate_dir+0xa0/0x160
> [    2.080334]  #1:  (&(&ip->i_lock)->mr_lock){++++..}, at: 
> [<c00000000042e7ec>] .xfs_ilock+0x15c/0x1b0
> [    2.080343] 
> stack backtrace:
> [    2.080348] CPU: 2 PID: 1 Comm: systemd Tainted: G        W    
> 3.14.0-rc1-24x7+ #8
> [    2.080353] Call Trace:
> [    2.080357] [c0000001fa103370] [c000000000016590] .show_stack+0x170/0x290 
> (unreliable)
> [    2.080364] [c0000001fa103460] [c000000000934f5c] .dump_stack+0xa0/0xdc
> [    2.080370] [c0000001fa1034e0] [c00000000092b6b4] 
> .print_circular_bug+0x364/0x39c
> [    2.080376] [c0000001fa103590] [c00000000010ba70] 
> .check_prev_add+0x8d0/0x8e0
> [    2.080381] [c0000001fa1036a0] [c00000000010c364] 
> .validate_chain.isra.31+0x8e4/0xc40
> [    2.080386] [c0000001fa103790] [c00000000010de08] 
> .__lock_acquire+0x488/0xd40
> [    2.080391] [c0000001fa1038b0] [c00000000010f08c] .lock_acquire+0xac/0x190
> [    2.080397] [c0000001fa103980] [c00000000021fe44] .might_fault+0xa4/0xe0
> [    2.080402] [c0000001fa1039f0] [c000000000297924] .filldir+0x1f4/0x290
> [    2.080407] [c0000001fa103ab0] [c0000000003cebc8] 
> .xfs_dir2_block_getdents+0x218/0x2b0
> [    2.080413] [c0000001fa103b80] [c0000000003cf1e8] .xfs_readdir+0x168/0x1d0
> [    2.080418] [c0000001fa103c30] [c0000000003d2508] 
> .xfs_file_readdir+0x48/0x80
> [    2.080423] [c0000001fa103cc0] [c0000000002974ec] .iterate_dir+0x11c/0x160
> [    2.080428] [c0000001fa103d60] [c000000000297df0] .SyS_getdents+0xa0/0x190
> [    2.080433] [c0000001fa103e30] [c00000000000a164] syscall_exit+0x0/0x98

False positive. We need to add new lockdep annotations because
lockdep doesn't know the difference between directory locking and
file IO path locking.

Ben, can you look at this? It is being caused by the addition of the
iolock to the directory readdir code, so directory inodes need a
different lockdep context to regular file inodes...

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>