答复: Re: [JFFS2]The patch "jffs2: Fix lock acquisition order bug in jffs2_write_begin" introduces another dead lock bug.

deng.chao1 at zte.com.cn deng.chao1 at zte.com.cn
Mon Aug 5 21:02:37 EDT 2013


Yes,my kernel actually had hit this dead lock.

My kernel's version is 2.6.32. After i merged the patch into my kernel, i
run my own filesystem test suite "fstess" on the kernel. About 9 hours
later, i found that the kernel didn't reponse any file operation at all. So
i used magic SysRq key to show state of all tasks. Finally i found this two
threads' stacktraces in the SysRq output as below which could prove the
dead lock:

[58062.104919] fstress       D 10012db0     0   947    775 0x00000000
[58062.178907] Call Trace:
[58062.208087] [c8023a50] [c04bffa4] rt_mutex_unlock+0x24/0x3c (unreliable)
[58062.288331] [c8023b10] [c000a380] __switch_to+0x64/0xd4
[58062.350857] [c8023b30] [c04bd0f0] schedule+0x5c8/0x1020
[58062.413383] [c8023ba0] [c04bdbc0] io_schedule+0x78/0xd8
[58062.475908] [c8023bc0] [c00d2024] sync_page+0x74/0x90
[58062.536353] [c8023bd0] [c04beb9c] __wait_on_bit_lock+0xa4/0x124
[58062.607202] [c8023c00] [c00d1f58] __lock_page+0xa0/0xb8
[58062.669716] [c8023c30] [c00d2290] find_lock_page+0x98/0xb8
[58062.735367] [c8023c50] [c00d2894] grab_cache_page_write_begin+0x50/0x110
[58062.815591] [c8023c80] [c0235454] jffs2_write_begin+0x80/0x2f0
[58062.885409] [c8023d00] [c00d3b00] generic_file_buffered_write
+0x1cc/0x308
[58062.966681] [c8023d90] [c00d4084] __generic_file_aio_write+0x200/0x4e0
[58063.044829] [c8023e00] [c00d43f4] generic_file_aio_write+0x90/0x118
[58063.119853] [c8023e30] [c0115d20] do_sync_write+0xd4/0x13c
[58063.185504] [c8023ef0] [c0116708] vfs_write+0xc0/0x1ec
[58063.246988] [c8023f10] [c0116b24] sys_write+0x5c/0xa8
[58063.307426] [c8023f40] [c00199b8] ret_from_syscall+0x0/0x38
[58063.374117] --- Exception: c01 at 0x10012db0
[58063.374124]     LR = 0x10012d98
[58063.462669] fstress       D 10012db0     0   948    775 0x00000000
[58063.536657] Call Trace:
[58063.565835] [c80259b0] [ced55198] 0xced55198 (unreliable)
[58063.630453] [c8025a70] [c000a380] __switch_to+0x64/0xd4
[58063.692973] [c8025a90] [c04bd0f0] schedule+0x5c8/0x1020
[58063.755499] [c8025b00] [c04bfa78] __rt_mutex_slowlock+0x8c/0x170
[58063.827392] [c8025b30] [c04c00c0] rt_mutex_slowlock+0x104/0x330
[58063.898243] [c8025bc0] [c04c03a0] rt_mutex_lock+0x4c/0x64
[58063.962850] [c8025bd0] [c04c0948] _mutex_lock+0x24/0x3c
[58064.025366] [c8025be0] [c0238550] jffs2_reserve_space+0x12c/0x328
[58064.098306] [c8025c50] [c023b4e0] jffs2_write_inode_range+0x238/0x2e8
[58064.175412] [c8025cc0] [c0235128] jffs2_write_end+0xfc/0x284
[58064.243146] [c8025d00] [c00d3a48] generic_file_buffered_write
+0x114/0x308
[58064.324418] [c8025d90] [c00d4084] __generic_file_aio_write+0x200/0x4e0
[58064.402566] [c8025e00] [c00d43f4] generic_file_aio_write+0x90/0x118
[58064.477591] [c8025e30] [c0115d20] do_sync_write+0xd4/0x13c
[58064.543241] [c8025ef0] [c0116708] vfs_write+0xc0/0x1ec
[58064.604726] [c8025f10] [c0116b24] sys_write+0x5c/0xa8
[58064.665163] [c8025f40] [c00199b8] ret_from_syscall+0x0/0x38
[58064.731848] --- Exception: c01 at 0x10012db0
[58064.731855]     LR = 0x10012d98

Best Regards,
Deng Chao


More information about the linux-mtd mailing list