Hi,
When I stress XFS filesystem, I find a bug, I can regenerate it on
2.6.18-rc3 and 2.6.18-rc4, my steps is:
# mount /dev/sda5 /mnt/sda5
#su oneuser
$ mkdir /mnt/sda5/xfstest
$ cd /mnt/sda5
$ bonnie++ -d xfstest -s 2048 -r 512
Note: /dev/sda5 has only 2G space.
After a while, kernel will output the following debug information:
BUG: soft lockup detected on CPU#0!
Call Trace:
[C0000001C7E5E880] [C00000000000EBBC] .show_stack+0x68/0x1b0 (unreliable)
[C0000001C7E5E920] [C0000000000849D0] .softlockup_tick+0xf0/0x128
[C0000001C7E5E9D0] [C00000000006413C] .run_local_timers+0x1c/0x30
[C0000001C7E5EA50] [C00000000001FFF0] .timer_interrupt+0xa8/0x474
[C0000001C7E5EB30] [C0000000000034EC] decrementer_common+0xec/0x100
--- Exception: 901 at .find_next_bit+0xac/0xbc
LR = .__next_cpu+0x20/0x44
[C0000001C7E5EE20] [C00000018824C170] 0xc00000018824c170 (unreliable)
[C0000001C7E5EEA0] [D000000000973018] .xfs_icsb_disable_counter+0x90/0x1ac
[xfs]
[C0000001C7E5EF60] [D000000000973274] .xfs_icsb_balance_counter+0x70/0x294
[xfs]
[C0000001C7E5F010] [D000000000973870]
.xfs_icsb_modify_counters_int+0x188/0x1f4 [xfs]
[C0000001C7E5F0D0] [D000000000977524] .xfs_trans_reserve+0x84/0x1fc [xfs]
[C0000001C7E5F190] [D0000000009687A4] .xfs_iomap_write_allocate+0x110/0x470
[xfs]
[C0000001C7E5F2F0] [D000000000967698] .xfs_iomap+0x3b8/0x6b8 [xfs]
[C0000001C7E5F420] [D00000000098E928] .xfs_bmap+0x14/0x28 [xfs]
[C0000001C7E5F4A0] [D000000000985ED4] .xfs_map_blocks+0x64/0xc0 [xfs]
[C0000001C7E5F540] [D00000000098631C] .xfs_page_state_convert+0x2e4/0xcf0
[xfs]
[C0000001C7E5F730] [D000000000987120] .xfs_vm_writepage+0xd8/0x134 [xfs]
[C0000001C7E5F7D0] [C0000000000E2094] .mpage_writepages+0x248/0x484
[C0000001C7E5F950] [D0000000009871EC] .xfs_vm_writepages+0x70/0x94 [xfs]
[C0000001C7E5F9F0] [C00000000008EFFC] .do_writepages+0x68/0xa8
[C0000001C7E5FA70] [C0000000000E01AC] .__writeback_single_inode+0x1c8/0x408
[C0000001C7E5FBA0] [C0000000000E086C] .sync_sb_inodes+0x240/0x360
[C0000001C7E5FC50] [C0000000000E0EE4] .writeback_inodes+0xb8/0x154
[C0000001C7E5FCF0] [C00000000008F884] .wb_kupdate+0x12c/0x1cc
[C0000001C7E5FE20] [C000000000090074] .pdflush+0x190/0x278
[C0000001C7E5FEE0] [C0000000000716F4] .kthread+0x124/0x174
[C0000001C7E5FF90] [C000000000023A48] .kernel_thread+0x4c/0x68
/////////////////////
BUG: soft lockup detected on CPU#2!
Call Trace:
[C0000001C10CA960] [C00000000000EBBC] .show_stack+0x68/0x1b0 (unreliable)
[C0000001C10CAA00] [C0000000000849D0] .softlockup_tick+0xf0/0x128
[C0000001C10CAAB0] [C00000000006413C] .run_local_timers+0x1c/0x30
[C0000001C10CAB30] [C00000000001FFF0] .timer_interrupt+0xa8/0x474
[C0000001C10CAC10] [C0000000000034EC] decrementer_common+0xec/0x100
--- Exception: 901 at .xfs_alloc_fix_freelist+0x7c/0x4c4 [xfs]
LR = .xfs_alloc_vextent+0x2f0/0x494 [xfs]
[C0000001C10CAF00] [0000000000000000] 0x0 (unreliable)
[C0000001C10CB040] [D000000000933298] .xfs_alloc_vextent+0x2f0/0x494 [xfs]
[C0000001C10CB110] [D000000000942F9C] .xfs_bmapi+0xd18/0x1834 [xfs]
[C0000001C10CB390] [D0000000009688F8] .xfs_iomap_write_allocate+0x264/0x470
[xfs
]
[C0000001C10CB4F0] [D000000000967698] .xfs_iomap+0x3b8/0x6b8 [xfs]
[C0000001C10CB620] [D00000000098E928] .xfs_bmap+0x14/0x28 [xfs]
[C0000001C10CB6A0] [D000000000985ED4] .xfs_map_blocks+0x64/0xc0 [xfs]
[C0000001C10CB740] [D00000000098631C] .xfs_page_state_convert+0x2e4/0xcf0
[xfs]
[C0000001C10CB930] [D000000000987120] .xfs_vm_writepage+0xd8/0x134 [xfs]
[C0000001C10CB9D0] [C0000000000E2094] .mpage_writepages+0x248/0x484
[C0000001C10CBB50] [D0000000009871EC] .xfs_vm_writepages+0x70/0x94 [xfs]
[C0000001C10CBBF0] [C00000000008EFFC] .do_writepages+0x68/0xa8
[C0000001C10CBC70] [C000000000089260] .__filemap_fdatawrite_range+0xa0/0xd8
[C0000001C10CBDA0] [D000000000990B78] .xfs_flush_inode_work+0x24/0x48 [xfs]
[C0000001C10CBE30] [D000000000990F68] .xfssyncd+0x144/0x1d0 [xfs]
[C0000001C10CBEE0] [C0000000000716F4] .kthread+0x124/0x174
[C0000001C10CBF90] [C000000000023A48] .kernel_thread+0x4c/0x68
According to these information, I can't find the reason of the problem, for
soft lockup, I think
only preemption disabling or interrupt disabling can result in this, but
the above functions don't
run such an operation, I don't know what is your idea?
[[HTML alternate version deleted]]
|