xfs
[Top] [All Lists]

Circular locking on rawhide 2.6.31-0.81.rc3.git4

To: xfs@xxxxxxxxxxx, Eric Sandeen <sandeen@xxxxxxxxxx>
Subject: Circular locking on rawhide 2.6.31-0.81.rc3.git4
From: Prarit Bhargava <prarit@xxxxxxxxxx>
Date: Mon, 27 Jul 2009 13:51:53 -0400
User-agent: Thunderbird 1.5.0.7 (X11/20061008)
Hello everyone,

This was seen while doing a "rpmbuild -bp kernel.spec" on a recent rawhide build.

=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.31-0.81.rc3.git4.fc12.x86_64 #1
-------------------------------------------------------
rpm/4790 is trying to acquire lock:
(&(&ip->i_iolock)->mr_lock){++++++}, at: [<ffffffffa0037e98>] xfs_ilock+0x3f/0xa7 [xfs]

but task is already holding lock:
(&mm->mmap_sem){++++++}, at: [<ffffffff81118782>] sys_munmap+0x4b/0x86

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (&mm->mmap_sem){++++++}:
      [<ffffffff810954b4>] __lock_acquire+0xa79/0xc0e
      [<ffffffff81095737>] lock_acquire+0xee/0x12e
      [<ffffffff8110fe5d>] might_fault+0x9e/0xd9
      [<ffffffff810f5dc7>] file_read_actor+0xdf/0x137
      [<ffffffff810f8a4e>] generic_file_aio_read+0x321/0x52f
      [<ffffffffa0060350>] xfs_read+0x190/0x214 [xfs]
      [<ffffffffa005bbda>] xfs_file_aio_read+0x77/0x8d [xfs]
      [<ffffffff8113caa8>] do_sync_read+0xfa/0x14b
      [<ffffffff8113d266>] vfs_read+0xba/0x12b
      [<ffffffff8113d3c9>] sys_read+0x59/0x91
      [<ffffffff81012f42>] system_call_fastpath+0x16/0x1b
      [<ffffffffffffffff>] 0xffffffffffffffff

-> #0 (&(&ip->i_iolock)->mr_lock){++++++}:
      [<ffffffff81095391>] __lock_acquire+0x956/0xc0e
      [<ffffffff81095737>] lock_acquire+0xee/0x12e
      [<ffffffff81083f9e>] down_write_nested+0x61/0xac
      [<ffffffffa0037e98>] xfs_ilock+0x3f/0xa7 [xfs]
      [<ffffffffa0053a64>] xfs_free_eofblocks+0x126/0x238 [xfs]
      [<ffffffffa0054594>] xfs_release+0x150/0x173 [xfs]
      [<ffffffffa005ba24>] xfs_file_release+0x28/0x40 [xfs]
      [<ffffffff8113e515>] __fput+0x137/0x1f8
      [<ffffffff8113e603>] fput+0x2d/0x43
      [<ffffffff81117019>] remove_vma+0x67/0xb5
      [<ffffffff81118701>] do_munmap+0x305/0x33b
      [<ffffffff81118790>] sys_munmap+0x59/0x86
      [<ffffffff81012f42>] system_call_fastpath+0x16/0x1b
      [<ffffffffffffffff>] 0xffffffffffffffff

other info that might help us debug this:

1 lock held by rpm/4790:
#0:  (&mm->mmap_sem){++++++}, at: [<ffffffff81118782>] sys_munmap+0x4b/0x86

stack backtrace:
Pid: 4790, comm: rpm Not tainted 2.6.31-0.81.rc3.git4.fc12.x86_64 #1
Call Trace:
[<ffffffff81094674>] print_circular_bug_tail+0x80/0x9f
[<ffffffff8109459f>] ? check_noncircular+0x93/0xe8
[<ffffffff81095391>] __lock_acquire+0x956/0xc0e
[<ffffffff81095737>] lock_acquire+0xee/0x12e
[<ffffffffa0037e98>] ? xfs_ilock+0x3f/0xa7 [xfs]
[<ffffffffa0037e98>] ? xfs_ilock+0x3f/0xa7 [xfs]
[<ffffffff81083f9e>] down_write_nested+0x61/0xac
[<ffffffffa0037e98>] ? xfs_ilock+0x3f/0xa7 [xfs]
[<ffffffffa0037e98>] xfs_ilock+0x3f/0xa7 [xfs]
[<ffffffffa0053a64>] xfs_free_eofblocks+0x126/0x238 [xfs]
[<ffffffffa0054594>] xfs_release+0x150/0x173 [xfs]
[<ffffffffa005ba24>] xfs_file_release+0x28/0x40 [xfs]
[<ffffffff8113e515>] __fput+0x137/0x1f8
[<ffffffff8113e603>] fput+0x2d/0x43
[<ffffffff81117019>] remove_vma+0x67/0xb5
[<ffffffff81118701>] do_munmap+0x305/0x33b
[<ffffffff81118782>] ? sys_munmap+0x4b/0x86
[<ffffffff81118790>] sys_munmap+0x59/0x86
[<ffffffff81012f42>] system_call_fastpath+0x16/0x1b

P.

<Prev in Thread] Current Thread [Next in Thread>
  • Circular locking on rawhide 2.6.31-0.81.rc3.git4, Prarit Bhargava <=