From: Ingo Molnar <mingo@elte.hu>
To: Anton Altaparmakov <aia21@cam.ac.uk>
Cc: Miles Lane <miles.lane@gmail.com>,
LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>,
Arjan van de Ven <arjan@infradead.org>
Subject: Re: 2.6.17-rc6-mm1 -- BUG: possible circular locking deadlock detected!
Date: Thu, 8 Jun 2006 13:23:06 +0200 [thread overview]
Message-ID: <20060608112306.GA4234@elte.hu> (raw)
In-Reply-To: <1149764032.10056.82.camel@imp.csi.cam.ac.uk>
* Anton Altaparmakov <aia21@cam.ac.uk> wrote:
> No it is not as explained above. Something has gotten confused
> somewhere because the order of events is the wrong way round...
ok, next try. Find below a chronological trace of the lock acquire and
new dependency events leading up the the circular dependency message.
The first (mrec_lock -> runlist.lock) dependency is:
new dependency: (&ni->mrec_lock){--..} => (&rl->lock){..--}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c4c>] down_read+0x2c/0x40
[<c01c170c>] ntfs_readpage+0x83c/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
and the opposite (runlist.lock -> mrec_lock) dependency wants to get
created at:
[<c0340678>] mutex_lock+0x8/0x10
[<c01d4ed1>] map_mft_record+0x51/0x2c0
[<c01c5358>] ntfs_map_runlist_nolock+0x3d8/0x530
[<c01c5a21>] ntfs_map_runlist+0x41/0x70
[<c01c1791>] ntfs_readpage+0x8c1/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01e2562>] load_system_files+0x472/0x2250
[<c01e4f96>] ntfs_fill_super+0xc56/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
does this trace make more sense?
Ingo
----{ NTFS lock events trace }------------->
new type c05bfcc4: &ni->mrec_lock
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138f24>] __lock_acquire+0xd04/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c034043f>] __mutex_lock_slowpath+0x6f/0x2a0
[<c0340678>] mutex_lock+0x8/0x10
[<c01d4ed1>] map_mft_record+0x51/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
acquire type [c05bfcc4] &ni->mrec_lock
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138759>] __lock_acquire+0x539/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c034043f>] __mutex_lock_slowpath+0x6f/0x2a0
[<c0340678>] mutex_lock+0x8/0x10
[<c01d4ed1>] map_mft_record+0x51/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new dependency: (&s->s_umount#15){--..} => (&ni->mrec_lock){....}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c034043f>] __mutex_lock_slowpath+0x6f/0x2a0
[<c0340678>] mutex_lock+0x8/0x10
[<c01d4ed1>] map_mft_record+0x51/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
marked lock as {hardirq-on-W}:
(&ni->mrec_lock){-...}, at: [<c0340678>] mutex_lock+0x8/0x10
irq event stamp: 2309
hardirqs last enabled at (2307): [<c03420a7>] _spin_unlock_irqrestore+0x47/0x60
hardirqs last disabled at (2309): [<c011cad6>] vprintk+0x26/0x360
softirqs last enabled at (1988): [<c0121e0e>] __do_softirq+0xfe/0x110
softirqs last disabled at (1981): [<c0105049>] do_softirq+0x69/0x100
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0137d37>] mark_lock+0x1c7/0x6b0
[<c01394db>] mark_held_locks+0x4b/0xa0
[<c0139660>] trace_hardirqs_on+0x70/0x160
[<c034052f>] __mutex_lock_slowpath+0x15f/0x2a0
[<c0340678>] mutex_lock+0x8/0x10
[<c01d4ed1>] map_mft_record+0x51/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
marked lock as {softirq-on-W}:
(&ni->mrec_lock){--..}, at: [<c0340678>] mutex_lock+0x8/0x10
irq event stamp: 2309
hardirqs last enabled at (2307): [<c03420a7>] _spin_unlock_irqrestore+0x47/0x60
hardirqs last disabled at (2309): [<c011cad6>] vprintk+0x26/0x360
softirqs last enabled at (1988): [<c0121e0e>] __do_softirq+0xfe/0x110
softirqs last disabled at (1981): [<c0105049>] do_softirq+0x69/0x100
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0137d37>] mark_lock+0x1c7/0x6b0
[<c0139512>] mark_held_locks+0x82/0xa0
[<c01396a0>] trace_hardirqs_on+0xb0/0x160
[<c034052f>] __mutex_lock_slowpath+0x15f/0x2a0
[<c0340678>] mutex_lock+0x8/0x10
[<c01d4ed1>] map_mft_record+0x51/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new dependency: (&ni->mrec_lock){--..} => (cpa_lock){++..}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0342159>] _spin_lock_irqsave+0x39/0x50
[<c01135fc>] change_page_attr+0x1c/0x2a0
[<c01138aa>] kernel_map_pages+0x2a/0xa0
[<c0147f53>] get_page_from_freelist+0x253/0x3c0
[<c0148110>] __alloc_pages+0x50/0x2f0
[<c0142f65>] read_cache_page+0x85/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new dependency: (&ni->mrec_lock){--..} => (&inode->i_data.tree_lock){++..}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0341c82>] _write_lock_irq+0x32/0x40
[<c0142181>] add_to_page_cache+0x41/0xd0
[<c014222b>] add_to_page_cache_lru+0x1b/0x40
[<c0142f17>] read_cache_page+0x37/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new dependency: (&ni->mrec_lock){--..} => (&inode->i_data.private_lock){--..}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0341bbc>] _spin_lock+0x2c/0x40
[<c0168053>] create_empty_buffers+0x33/0xa0
[<c01c11e7>] ntfs_readpage+0x317/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new type c05bfcbc: &rl->lock
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138f24>] __lock_acquire+0xd04/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c4c>] down_read+0x2c/0x40
[<c01c170c>] ntfs_readpage+0x83c/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
acquire type [c05bfcbc] &rl->lock
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138759>] __lock_acquire+0x539/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c4c>] down_read+0x2c/0x40
[<c01c170c>] ntfs_readpage+0x83c/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
marked lock as {hardirq-on-R}:
(&rl->lock){..-.}, at: [<c01c170c>] ntfs_readpage+0x83c/0x9a0
irq event stamp: 2440
hardirqs last enabled at (2439): [<c0342107>] _read_unlock_irqrestore+0x47/0x60
hardirqs last disabled at (2440): [<c011cad6>] vprintk+0x26/0x360
softirqs last enabled at (2436): [<c0121e0e>] __do_softirq+0xfe/0x110
softirqs last disabled at (2419): [<c0105049>] do_softirq+0x69/0x100
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0137d37>] mark_lock+0x1c7/0x6b0
[<c0138776>] __lock_acquire+0x556/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c4c>] down_read+0x2c/0x40
[<c01c170c>] ntfs_readpage+0x83c/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
marked lock as {softirq-on-R}:
(&rl->lock){..--}, at: [<c01c170c>] ntfs_readpage+0x83c/0x9a0
irq event stamp: 2440
hardirqs last enabled at (2439): [<c0342107>] _read_unlock_irqrestore+0x47/0x60
hardirqs last disabled at (2440): [<c011cad6>] vprintk+0x26/0x360
softirqs last enabled at (2436): [<c0121e0e>] __do_softirq+0xfe/0x110
softirqs last disabled at (2419): [<c0105049>] do_softirq+0x69/0x100
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0137d37>] mark_lock+0x1c7/0x6b0
[<c0138882>] __lock_acquire+0x662/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c4c>] down_read+0x2c/0x40
[<c01c170c>] ntfs_readpage+0x83c/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new dependency: (&ni->mrec_lock){--..} => (&rl->lock){..--}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c4c>] down_read+0x2c/0x40
[<c01c170c>] ntfs_readpage+0x83c/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new dependency: (&ni->mrec_lock){--..} => (&lo->lo_lock){....}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0341f62>] _spin_lock_irq+0x32/0x40
[<c0276e69>] loop_make_request+0x49/0x100
[<c01f3f51>] generic_make_request+0x1c1/0x270
[<c01f404e>] submit_bio+0x4e/0xe0
[<c016731d>] submit_bh+0xcd/0x130
[<c01c173e>] ntfs_readpage+0x86e/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new dependency: (&ni->mrec_lock){--..} => (&q->lock){++..}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0342159>] _spin_lock_irqsave+0x39/0x50
[<c01140cb>] complete+0x1b/0x60
[<c0276ed7>] loop_make_request+0xb7/0x100
[<c01f3f51>] generic_make_request+0x1c1/0x270
[<c01f404e>] submit_bio+0x4e/0xe0
[<c016731d>] submit_bh+0xcd/0x130
[<c01c173e>] ntfs_readpage+0x86e/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new dependency: (&ni->mrec_lock){--..} => (ide_lock){++..}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0341f62>] _spin_lock_irq+0x32/0x40
[<c01f30d1>] generic_unplug_device+0x11/0x30
[<c01f25e2>] blk_backing_dev_unplug+0x12/0x20
[<c0276f57>] loop_unplug+0x37/0x40
[<c01f25e2>] blk_backing_dev_unplug+0x12/0x20
[<c0166269>] block_sync_page+0x39/0x50
[<c0141cc8>] sync_page+0x38/0x50
[<c033fc69>] __wait_on_bit_lock+0x49/0x70
[<c0141dcb>] __lock_page+0x6b/0x80
[<c0142fe5>] read_cache_page+0x105/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new dependency: (&ni->mrec_lock){--..} => (&rq->lock){++..}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0341f62>] _spin_lock_irq+0x32/0x40
[<c033ebba>] schedule+0xea/0xb80
[<c033f678>] io_schedule+0x28/0x40
[<c0141ccd>] sync_page+0x3d/0x50
[<c033fc69>] __wait_on_bit_lock+0x49/0x70
[<c0141dcb>] __lock_page+0x6b/0x80
[<c0142fe5>] read_cache_page+0x105/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
acquire type [c05bfcc4] &ni->mrec_lock
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138759>] __lock_acquire+0x539/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c034043f>] __mutex_lock_slowpath+0x6f/0x2a0
[<c0340678>] mutex_lock+0x8/0x10
[<c01d4ed1>] map_mft_record+0x51/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d4545>] ntfs_iget+0x55/0x80
[<c01e216a>] load_system_files+0x7a/0x2250
[<c01e4f96>] ntfs_fill_super+0xc56/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
acquire type [c05bfcbc] &rl->lock
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138759>] __lock_acquire+0x539/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c4c>] down_read+0x2c/0x40
[<c01c170c>] ntfs_readpage+0x83c/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01e2562>] load_system_files+0x472/0x2250
[<c01e4f96>] ntfs_fill_super+0xc56/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
new dependency: (&s->s_umount#15){--..} => (&rl->lock){..--}
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138bc9>] __lock_acquire+0x9a9/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c4c>] down_read+0x2c/0x40
[<c01c170c>] ntfs_readpage+0x83c/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01e2562>] load_system_files+0x472/0x2250
[<c01e4f96>] ntfs_fill_super+0xc56/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
acquire type [c05bfcbc] &rl->lock
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138759>] __lock_acquire+0x539/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c8c>] down_write+0x2c/0x50
[<c01c5a00>] ntfs_map_runlist+0x20/0x70
[<c01c1791>] ntfs_readpage+0x8c1/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01e2562>] load_system_files+0x472/0x2250
[<c01e4f96>] ntfs_fill_super+0xc56/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
marked lock as {hardirq-on-W}:
(&rl->lock){-.--}, at: [<c01c5a00>] ntfs_map_runlist+0x20/0x70
irq event stamp: 2940
hardirqs last enabled at (2939): [<c0342403>] restore_nocheck+0x12/0x15
hardirqs last disabled at (2940): [<c011cad6>] vprintk+0x26/0x360
softirqs last enabled at (2938): [<c0121e0e>] __do_softirq+0xfe/0x110
softirqs last disabled at (2923): [<c0105049>] do_softirq+0x69/0x100
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0137d37>] mark_lock+0x1c7/0x6b0
[<c0138588>] __lock_acquire+0x368/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c8c>] down_write+0x2c/0x50
[<c01c5a00>] ntfs_map_runlist+0x20/0x70
[<c01c1791>] ntfs_readpage+0x8c1/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01e2562>] load_system_files+0x472/0x2250
[<c01e4f96>] ntfs_fill_super+0xc56/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
marked lock as {softirq-on-W}:
(&rl->lock){----}, at: [<c01c5a00>] ntfs_map_runlist+0x20/0x70
irq event stamp: 2940
hardirqs last enabled at (2939): [<c0342403>] restore_nocheck+0x12/0x15
hardirqs last disabled at (2940): [<c011cad6>] vprintk+0x26/0x360
softirqs last enabled at (2938): [<c0121e0e>] __do_softirq+0xfe/0x110
softirqs last disabled at (2923): [<c0105049>] do_softirq+0x69/0x100
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0137d37>] mark_lock+0x1c7/0x6b0
[<c0138882>] __lock_acquire+0x662/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c8c>] down_write+0x2c/0x50
[<c01c5a00>] ntfs_map_runlist+0x20/0x70
[<c01c1791>] ntfs_readpage+0x8c1/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01e2562>] load_system_files+0x472/0x2250
[<c01e4f96>] ntfs_fill_super+0xc56/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
acquire type [c05bfcc4] &ni->mrec_lock
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0138759>] __lock_acquire+0x539/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c034043f>] __mutex_lock_slowpath+0x6f/0x2a0
[<c0340678>] mutex_lock+0x8/0x10
[<c01d4ed1>] map_mft_record+0x51/0x2c0
[<c01c5358>] ntfs_map_runlist_nolock+0x3d8/0x530
[<c01c5a21>] ntfs_map_runlist+0x41/0x70
[<c01c1791>] ntfs_readpage+0x8c1/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01e2562>] load_system_files+0x472/0x2250
[<c01e4f96>] ntfs_fill_super+0xc56/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
=====================================================
[ BUG: possible circular locking deadlock detected! ]
-----------------------------------------------------
mount/2406 is trying to acquire lock:
(&ni->mrec_lock){--..}, at: [<c0340678>] mutex_lock+0x8/0x10
but task is already holding lock:
(&rl->lock){----}, at: [<c01c5a00>] ntfs_map_runlist+0x20/0x70
which lock already depends on the new lock,
which could lead to circular deadlocks!
the existing dependency chain (in reverse order) is:
-> #1 (&rl->lock){----}:
[<c013946b>] lock_acquire+0x7b/0xa0
[<c0134c4c>] down_read+0x2c/0x40
[<c01c170c>] ntfs_readpage+0x83c/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01d4f92>] map_mft_record+0x112/0x2c0
[<c01d240d>] ntfs_read_locked_inode+0x8d/0x15d0
[<c01d3ddb>] ntfs_read_inode_mount+0x48b/0xba0
[<c01e4f3b>] ntfs_fill_super+0xbfb/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
-> #0 (&ni->mrec_lock){--..}:
[<c013946b>] lock_acquire+0x7b/0xa0
[<c034043f>] __mutex_lock_slowpath+0x6f/0x2a0
[<c0340678>] mutex_lock+0x8/0x10
[<c01d4ed1>] map_mft_record+0x51/0x2c0
[<c01c5358>] ntfs_map_runlist_nolock+0x3d8/0x530
[<c01c5a21>] ntfs_map_runlist+0x41/0x70
[<c01c1791>] ntfs_readpage+0x8c1/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01e2562>] load_system_files+0x472/0x2250
[<c01e4f96>] ntfs_fill_super+0xc56/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
other info that might help us debug this:
2 locks held by mount/2406:
#0: (&s->s_umount#15){--..}, at: [<c016bb8d>] sget+0x11d/0x2f0
#1: (&rl->lock){----}, at: [<c01c5a00>] ntfs_map_runlist+0x20/0x70
stack backtrace:
[<c0104bf2>] show_trace+0x12/0x20
[<c0104c19>] dump_stack+0x19/0x20
[<c0136e61>] print_circular_bug_tail+0x61/0x70
[<c013896f>] __lock_acquire+0x74f/0xde0
[<c013946b>] lock_acquire+0x7b/0xa0
[<c034043f>] __mutex_lock_slowpath+0x6f/0x2a0
[<c0340678>] mutex_lock+0x8/0x10
[<c01d4ed1>] map_mft_record+0x51/0x2c0
[<c01c5358>] ntfs_map_runlist_nolock+0x3d8/0x530
[<c01c5a21>] ntfs_map_runlist+0x41/0x70
[<c01c1791>] ntfs_readpage+0x8c1/0x9a0
[<c0142f8c>] read_cache_page+0xac/0x150
[<c01e2562>] load_system_files+0x472/0x2250
[<c01e4f96>] ntfs_fill_super+0xc56/0x1a50
[<c016bf5e>] get_sb_bdev+0xde/0x120
[<c01e03fb>] ntfs_get_sb+0x1b/0x30
[<c016b583>] vfs_kern_mount+0x33/0xa0
[<c016b646>] do_kern_mount+0x36/0x50
[<c0181a4e>] do_mount+0x28e/0x640
[<c0181e6f>] sys_mount+0x6f/0xb0
[<c034233d>] sysenter_past_esp+0x56/0x8d
NTFS volume version 1.2.
NTFS-fs warning (device loop0): load_system_files(): Disabling sparse support due to NTFS volume version 1.2 (need at least version 3.0).
next prev parent reply other threads:[~2006-06-08 11:23 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-08 4:27 2.6.17-rc6-mm1 -- BUG: possible circular locking deadlock detected! Miles Lane
2006-06-08 7:32 ` Anton Altaparmakov
2006-06-08 9:55 ` Ingo Molnar
2006-06-08 10:53 ` Anton Altaparmakov
2006-06-08 11:23 ` Ingo Molnar [this message]
2006-06-09 8:09 ` Anton Altaparmakov
2006-06-10 7:59 ` Ingo Molnar
2006-06-10 8:48 ` Anton Altaparmakov
2006-06-11 5:31 ` Ingo Molnar
2006-06-11 7:10 ` Anton Altaparmakov
2006-06-12 8:31 ` Ingo Molnar
2006-06-12 8:47 ` Anton Altaparmakov
2006-06-12 9:40 ` Ingo Molnar
2006-06-12 10:24 ` Anton Altaparmakov
2006-06-12 10:56 ` Ingo Molnar
2006-06-13 5:41 ` Miles Lane
2006-06-13 21:18 ` Ingo Molnar
2006-06-08 16:11 ` Ingo Molnar
2006-06-08 21:17 ` Anton Altaparmakov
2006-06-09 7:19 ` Ingo Molnar
2006-06-09 8:31 ` Anton Altaparmakov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060608112306.GA4234@elte.hu \
--to=mingo@elte.hu \
--cc=aia21@cam.ac.uk \
--cc=akpm@osdl.org \
--cc=arjan@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=miles.lane@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox