WARNING followed by splat when running rewrite test program
Darrick J. Wong
darrick.wong at oracle.com
Tue Apr 29 00:05:58 PDT 2014
Hi,
I lazily "ported" tux3 to 3.15-rc3 and then I tried running the stable page
test program[1] on a tux3 filesystem with mmap enabled, and got a splat in
dmesg.
# gcc -o wac wac.c
# mount /dev/path/to/a/tux3fs /mnt
# ./wac -l 65536 -n 32 -m 32 -f -r /mnt/victimfile
<wait a few seconds>
<kaboom>
Looks like first we get a warning, followed some time later by an actual BUG.
If I omit the "-m32" above to shut off mmap writes, it's fine. Actually, it
beats btrfs and ext4 by a wide margin in terms of write speed.
[1] http://djwong.org/docs/wac.c
--D
[ 32.654961] tux3_fill_super:480: s_blocksize 4096
[ 32.671154] TUX3-fs (sdc): use bdi_wq ffff88007d1f3e00
[ 32.768489] TUX3-fs warning (sdc): fsync(2) fall-back to sync(2): 0-7fffffffffffffff, datasync 0
[ 32.813859] ------------[ cut here ]------------
[ 32.817818] ------------[ cut here ]------------
[ 32.817937] WARNING: CPU: 1 PID: 4039 at /storage/home/djwong/cdev/work/linux-mcsum/fs/tux3/filemap_mmap.c:110 tux3_set_page_dirty_assert+0x6f/0x80 [tux3]()
[ 32.817947] Modules linked in: tux3 scsi_debug eeprom sch_fq_codel lpc_ich mfd_core fuse nfsd auth_rpcgss exportfs virtio_scsi af_packet
[ 32.817951] CPU: 1 PID: 4039 Comm: wac Not tainted 3.15.0-rc3-mcsum #5
[ 32.817952] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Bochs 01/01/2011
[ 32.817957] 0000000000000009 ffff88006408fce0 ffffffff81586cff 0000000000000000
[ 32.817960] ffff88006408fd18 ffffffff8107610d ffffea0001de6a80 00007f1122796fb4
[ 32.817962] 0000000000000200 0000000000000000 ffffea00018f3cf0 ffff88006408fd28
[ 32.817963] Call Trace:
[ 32.817970] [<ffffffff81586cff>] dump_stack+0x4d/0x6f
[ 32.817975] [<ffffffff8107610d>] warn_slowpath_common+0x7d/0xa0
[ 32.817979] [<ffffffff810761ea>] warn_slowpath_null+0x1a/0x20
[ 32.817987] [<ffffffffa00c89ef>] tux3_set_page_dirty_assert+0x6f/0x80 [tux3]
[ 32.817991] [<ffffffff81140047>] set_page_dirty+0x37/0x60
[ 32.817995] [<ffffffff8115de52>] do_shared_fault.isra.79+0x112/0x1c0
[ 32.817999] [<ffffffff8115ec0e>] handle_mm_fault+0x26e/0xc60
[ 32.818003] [<ffffffff810903ba>] ? __queue_delayed_work+0x9a/0x190
[ 32.818006] [<ffffffff81090bcd>] ? try_to_grab_pending+0x11d/0x160
[ 32.818011] [<ffffffff8103af8b>] __do_page_fault+0x11b/0x480
[ 32.818016] [<ffffffff811b6014>] ? sync_inodes_sb+0x174/0x1c0
[ 32.818020] [<ffffffff8103b342>] do_page_fault+0x22/0x30
[ 32.818025] [<ffffffff81037428>] do_async_page_fault+0x28/0xa0
[ 32.818029] [<ffffffff8158d615>] async_page_fault+0x25/0x30
[ 32.818031] ---[ end trace bb7f3e27b1dad3e6 ]---
[ 32.818046] ------------[ cut here ]------------
[ 32.818047] kernel BUG at /storage/home/djwong/cdev/work/linux-mcsum/fs/tux3/filemap_mmap.c:113!
[ 32.818050] invalid opcode: 0000 [#1] PREEMPT SMP
[ 32.818058] Modules linked in: tux3 scsi_debug eeprom sch_fq_codel lpc_ich mfd_core fuse nfsd auth_rpcgss exportfs virtio_scsi af_packet
[ 32.818060] CPU: 1 PID: 4039 Comm: wac Tainted: G W 3.15.0-rc3-mcsum #5
[ 32.818061] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Bochs 01/01/2011
[ 32.818063] task: ffff880063d01830 ti: ffff88006408e000 task.ti: ffff88006408e000
[ 32.818072] RIP: 0010:[<ffffffffa00c89dc>] [<ffffffffa00c89dc>] tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818073] RSP: 0000:ffff88006408fd38 EFLAGS: 00010246
[ 32.818075] RAX: 400000000000096d RBX: ffffea0001de6a80 RCX: 0000000000000086
[ 32.818076] RDX: 000000000000fcfc RSI: 0000000000000000 RDI: 0000000000000009
[ 32.818077] RBP: ffff88006408fd40 R08: 0000000000001d0c R09: ffffffff81c09404
[ 32.818079] R10: 00000000000164e0 R11: 0000000000020000 R12: 00007f1122796fb4
[ 32.818080] R13: 0000000000000200 R14: 0000000000000000 R15: ffffea00018f3cf0
[ 32.818083] FS: 00007f112279f740(0000) GS:ffff88007fc80000(0000) knlGS:0000000000000000
[ 32.818084] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 32.818085] CR2: 00007f1122796fb4 CR3: 0000000063ceb000 CR4: 00000000001406e0
[ 32.818097] Stack:
[ 32.818100] ffffea0001de6a80 ffff88006408fd58 ffffffff81140047 ffff880063df68f0
[ 32.818103] ffff88006408fda0 ffffffff8115de52 ffff880063cf3cb0 ffffea0001de6a80
[ 32.818105] 00007f1122796fb4 ffff880063df68f0 ffff880063cf0898 ffff88007acdaa40
[ 32.818106] Call Trace:
[ 32.818110] [<ffffffff81140047>] set_page_dirty+0x37/0x60
[ 32.818114] [<ffffffff8115de52>] do_shared_fault.isra.79+0x112/0x1c0
[ 32.818118] [<ffffffff8115ec0e>] handle_mm_fault+0x26e/0xc60
[ 32.818121] [<ffffffff810903ba>] ? __queue_delayed_work+0x9a/0x190
[ 32.818124] [<ffffffff81090bcd>] ? try_to_grab_pending+0x11d/0x160
[ 32.818128] [<ffffffff8103af8b>] __do_page_fault+0x11b/0x480
[ 32.818132] [<ffffffff811b6014>] ? sync_inodes_sb+0x174/0x1c0
[ 32.818136] [<ffffffff8103b342>] do_page_fault+0x22/0x30
[ 32.818139] [<ffffffff81037428>] do_async_page_fault+0x28/0xa0
[ 32.818143] [<ffffffff8158d615>] async_page_fault+0x25/0x30
[ 32.818180] Code: 48 8b 4b 30 48 89 c8 0f 1f 84 00 00 00 00 00 48 8b 10 83 e2 02 74 0e 48 8b 40 08 48 39 c1 75 ef 5b 31 c0 5d c3 0f 0b 0f 0b 0f 0b <0f> 0b be 6e 00 00 00 48 c7 c7 40 89 0d a0 e8 e1 d7 fa e0 eb a9
[ 32.818188] RIP [<ffffffffa00c89dc>] tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818189] RSP <ffff88006408fd38>
[ 32.818191] ---[ end trace bb7f3e27b1dad3e7 ]---
[ 32.818231] ------------[ cut here ]------------
[ 32.818239] WARNING: CPU: 1 PID: 4039 at /storage/home/djwong/cdev/work/linux-mcsum/fs/tux3/filemap_mmap.c:110 tux3_set_page_dirty_assert+0x6f/0x80 [tux3]()
[ 32.818246] Modules linked in: tux3 scsi_debug eeprom sch_fq_codel lpc_ich mfd_core fuse nfsd auth_rpcgss exportfs virtio_scsi af_packet
[ 32.818249] CPU: 1 PID: 4039 Comm: wac Tainted: G D W 3.15.0-rc3-mcsum #5
[ 32.818250] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Bochs 01/01/2011
[ 32.818252] 0000000000000009 ffff88006408f870 ffffffff81586cff 0000000000000000
[ 32.818255] ffff88006408f8a8 ffffffff8107610d ffffea0001de6a80 ffffea0001de6a80
[ 32.818258] 00007f112279f000 00007f1122796000 ffff88006408fa10 ffff88006408f8b8
[ 32.818258] Call Trace:
[ 32.818262] [<ffffffff81586cff>] dump_stack+0x4d/0x6f
[ 32.818266] [<ffffffff8107610d>] warn_slowpath_common+0x7d/0xa0
[ 32.818270] [<ffffffff810761ea>] warn_slowpath_null+0x1a/0x20
[ 32.818276] [<ffffffffa00c89ef>] tux3_set_page_dirty_assert+0x6f/0x80 [tux3]
[ 32.818280] [<ffffffff81140047>] set_page_dirty+0x37/0x60
[ 32.818283] [<ffffffff8115bfe4>] unmap_single_vma+0x674/0x8a0
[ 32.818287] [<ffffffff8115d0f9>] unmap_vmas+0x49/0x60
[ 32.818291] [<ffffffff811660ec>] exit_mmap+0x8c/0x150
[ 32.818295] [<ffffffff810734b9>] mmput+0x59/0x120
[ 32.818298] [<ffffffff810774d7>] do_exit+0x247/0xa00
[ 32.818303] [<ffffffff810cb421>] ? kmsg_dump+0xc1/0xd0
[ 32.818306] [<ffffffff810068ab>] oops_end+0x9b/0xe0
[ 32.818308] [<ffffffff81006a2b>] die+0x4b/0x70
[ 32.818313] [<ffffffff81003110>] do_trap+0x60/0x170
[ 32.818317] [<ffffffff810035c5>] do_invalid_op+0x95/0xb0
[ 32.818323] [<ffffffffa00c89dc>] ? tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818327] [<ffffffff8158f40b>] invalid_op+0x1b/0x20
[ 32.818334] [<ffffffffa00c89dc>] ? tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818340] [<ffffffffa00c89ef>] ? tux3_set_page_dirty_assert+0x6f/0x80 [tux3]
[ 32.818343] [<ffffffff81140047>] set_page_dirty+0x37/0x60
[ 32.818346] [<ffffffff8115de52>] do_shared_fault.isra.79+0x112/0x1c0
[ 32.818350] [<ffffffff8115ec0e>] handle_mm_fault+0x26e/0xc60
[ 32.818353] [<ffffffff810903ba>] ? __queue_delayed_work+0x9a/0x190
[ 32.818356] [<ffffffff81090bcd>] ? try_to_grab_pending+0x11d/0x160
[ 32.818359] [<ffffffff8103af8b>] __do_page_fault+0x11b/0x480
[ 32.818363] [<ffffffff811b6014>] ? sync_inodes_sb+0x174/0x1c0
[ 32.818366] [<ffffffff8103b342>] do_page_fault+0x22/0x30
[ 32.818439] [<ffffffff81037428>] do_async_page_fault+0x28/0xa0
[ 32.818444] [<ffffffff8158d615>] async_page_fault+0x25/0x30
[ 32.818446] ---[ end trace bb7f3e27b1dad3e8 ]---
[ 32.818456] ------------[ cut here ]------------
[ 32.818458] kernel BUG at /storage/home/djwong/cdev/work/linux-mcsum/fs/tux3/filemap_mmap.c:113!
[ 32.818461] invalid opcode: 0000 [#2] PREEMPT SMP
[ 32.818468] Modules linked in: tux3 scsi_debug eeprom sch_fq_codel lpc_ich mfd_core fuse nfsd auth_rpcgss exportfs virtio_scsi af_packet
[ 32.818470] CPU: 1 PID: 4039 Comm: wac Tainted: G D W 3.15.0-rc3-mcsum #5
[ 32.818472] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Bochs 01/01/2011
[ 32.818473] task: ffff880063d01830 ti: ffff88006408e000 task.ti: ffff88006408e000
[ 32.818480] RIP: 0010:[<ffffffffa00c89dc>] [<ffffffffa00c89dc>] tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818481] RSP: 0000:ffff88006408f8c8 EFLAGS: 00010246
[ 32.818483] RAX: 400000000000096d RBX: ffffea0001de6a80 RCX: 0000000000000086
[ 32.818484] RDX: 000000000000e7e7 RSI: 0000000000000000 RDI: 0000000000000009
[ 32.818485] RBP: ffff88006408f8d0 R08: 0000000000001d0c R09: ffffffff81c0aa04
[ 32.818487] R10: 0000000000014ee0 R11: 0000000000020000 R12: ffffea0001de6a80
[ 32.818488] R13: 00007f112279f000 R14: 00007f1122796000 R15: ffff88006408fa10
[ 32.818490] FS: 0000000000000000(0000) GS:ffff88007fc80000(0000) knlGS:0000000000000000
[ 32.818492] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 32.818493] CR2: 00007f1122796fb4 CR3: 0000000063ceb000 CR4: 00000000001406e0
[ 32.818504] Stack:
[ 32.818507] ffffea0001de6a80 ffff88006408f8e8 ffffffff81140047 ffff880063cf3cb0
[ 32.818510] ffff88006408f9c8 ffffffff8115bfe4 00007f112279efff 00007f112279efff
[ 32.818512] ffff880063ceb7f0 00007f112279f000 ffff880063cef220 00007f112279f000
[ 32.818513] Call Trace:
[ 32.818517] [<ffffffff81140047>] set_page_dirty+0x37/0x60
[ 32.818521] [<ffffffff8115bfe4>] unmap_single_vma+0x674/0x8a0
[ 32.818525] [<ffffffff8115d0f9>] unmap_vmas+0x49/0x60
[ 32.818528] [<ffffffff811660ec>] exit_mmap+0x8c/0x150
[ 32.818533] [<ffffffff810734b9>] mmput+0x59/0x120
[ 32.818535] [<ffffffff810774d7>] do_exit+0x247/0xa00
[ 32.818539] [<ffffffff810cb421>] ? kmsg_dump+0xc1/0xd0
[ 32.818542] [<ffffffff810068ab>] oops_end+0x9b/0xe0
[ 32.818545] [<ffffffff81006a2b>] die+0x4b/0x70
[ 32.818548] [<ffffffff81003110>] do_trap+0x60/0x170
[ 32.818552] [<ffffffff810035c5>] do_invalid_op+0x95/0xb0
[ 32.818558] [<ffffffffa00c89dc>] ? tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818562] [<ffffffff8158f40b>] invalid_op+0x1b/0x20
[ 32.818568] [<ffffffffa00c89dc>] ? tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818575] [<ffffffffa00c89ef>] ? tux3_set_page_dirty_assert+0x6f/0x80 [tux3]
[ 32.818578] [<ffffffff81140047>] set_page_dirty+0x37/0x60
[ 32.818581] [<ffffffff8115de52>] do_shared_fault.isra.79+0x112/0x1c0
[ 32.818585] [<ffffffff8115ec0e>] handle_mm_fault+0x26e/0xc60
[ 32.818588] [<ffffffff810903ba>] ? __queue_delayed_work+0x9a/0x190
[ 32.818591] [<ffffffff81090bcd>] ? try_to_grab_pending+0x11d/0x160
[ 32.818594] [<ffffffff8103af8b>] __do_page_fault+0x11b/0x480
[ 32.818598] [<ffffffff811b6014>] ? sync_inodes_sb+0x174/0x1c0
[ 32.818602] [<ffffffff8103b342>] do_page_fault+0x22/0x30
[ 32.818605] [<ffffffff81037428>] do_async_page_fault+0x28/0xa0
[ 32.818609] [<ffffffff8158d615>] async_page_fault+0x25/0x30
[ 32.818636] Code: 48 8b 4b 30 48 89 c8 0f 1f 84 00 00 00 00 00 48 8b 10 83 e2 02 74 0e 48 8b 40 08 48 39 c1 75 ef 5b 31 c0 5d c3 0f 0b 0f 0b 0f 0b <0f> 0b be 6e 00 00 00 48 c7 c7 40 89 0d a0 e8 e1 d7 fa e0 eb a9
[ 32.818642] RIP [<ffffffffa00c89dc>] tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818643] RSP <ffff88006408f8c8>
[ 32.818644] ---[ end trace bb7f3e27b1dad3e9 ]---
[ 32.818645] Fixing recursive fault but reboot is needed!
[ 32.818647] BUG: scheduling while atomic: wac/4039/0x00000002
[ 32.818654] Modules linked in: tux3 scsi_debug eeprom sch_fq_codel lpc_ich mfd_core fuse nfsd auth_rpcgss exportfs virtio_scsi af_packet
[ 32.818657] CPU: 1 PID: 4039 Comm: wac Tainted: G D W 3.15.0-rc3-mcsum #5
[ 32.818658] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Bochs 01/01/2011
[ 32.818660] ffff88006408f818 ffff88006408f5c8 ffffffff81586cff ffff88007fc92c40
[ 32.818663] ffff88006408f5d8 ffffffff8158453a ffff88006408f638 ffffffff815894a2
[ 32.818665] ffff880063d01830 ffff88006408ffd8 0000000000012c40 0000000000012c40
[ 32.818666] Call Trace:
[ 32.818669] [<ffffffff81586cff>] dump_stack+0x4d/0x6f
[ 32.818673] [<ffffffff8158453a>] __schedule_bug+0x4c/0x5a
[ 32.818676] [<ffffffff815894a2>] __schedule+0x672/0x780
[ 32.818680] [<ffffffff815895d9>] schedule+0x29/0x70
[ 32.818682] [<ffffffff81077c06>] do_exit+0x976/0xa00
[ 32.818686] [<ffffffff810cb421>] ? kmsg_dump+0xc1/0xd0
[ 32.818689] [<ffffffff810068ab>] oops_end+0x9b/0xe0
[ 32.818691] [<ffffffff81006a2b>] die+0x4b/0x70
[ 32.818695] [<ffffffff81003110>] do_trap+0x60/0x170
[ 32.818698] [<ffffffff810035c5>] do_invalid_op+0x95/0xb0
[ 32.818704] [<ffffffffa00c89dc>] ? tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818708] [<ffffffff8158f40b>] invalid_op+0x1b/0x20
[ 32.818714] [<ffffffffa00c89dc>] ? tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818720] [<ffffffffa00c89ef>] ? tux3_set_page_dirty_assert+0x6f/0x80 [tux3]
[ 32.818723] [<ffffffff81140047>] set_page_dirty+0x37/0x60
[ 32.818795] [<ffffffff8115bfe4>] unmap_single_vma+0x674/0x8a0
[ 32.818800] [<ffffffff8115d0f9>] unmap_vmas+0x49/0x60
[ 32.818803] [<ffffffff811660ec>] exit_mmap+0x8c/0x150
[ 32.818808] [<ffffffff810734b9>] mmput+0x59/0x120
[ 32.818810] [<ffffffff810774d7>] do_exit+0x247/0xa00
[ 32.818814] [<ffffffff810cb421>] ? kmsg_dump+0xc1/0xd0
[ 32.818817] [<ffffffff810068ab>] oops_end+0x9b/0xe0
[ 32.818819] [<ffffffff81006a2b>] die+0x4b/0x70
[ 32.818822] [<ffffffff81003110>] do_trap+0x60/0x170
[ 32.818826] [<ffffffff810035c5>] do_invalid_op+0x95/0xb0
[ 32.818832] [<ffffffffa00c89dc>] ? tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818835] [<ffffffff8158f40b>] invalid_op+0x1b/0x20
[ 32.818842] [<ffffffffa00c89dc>] ? tux3_set_page_dirty_assert+0x5c/0x80 [tux3]
[ 32.818848] [<ffffffffa00c89ef>] ? tux3_set_page_dirty_assert+0x6f/0x80 [tux3]
[ 32.818851] [<ffffffff81140047>] set_page_dirty+0x37/0x60
[ 32.818855] [<ffffffff8115de52>] do_shared_fault.isra.79+0x112/0x1c0
[ 32.818858] [<ffffffff8115ec0e>] handle_mm_fault+0x26e/0xc60
[ 32.818862] [<ffffffff810903ba>] ? __queue_delayed_work+0x9a/0x190
[ 32.818864] [<ffffffff81090bcd>] ? try_to_grab_pending+0x11d/0x160
[ 32.818867] [<ffffffff8103af8b>] __do_page_fault+0x11b/0x480
[ 32.818872] [<ffffffff811b6014>] ? sync_inodes_sb+0x174/0x1c0
[ 32.818875] [<ffffffff8103b342>] do_page_fault+0x22/0x30
[ 32.818879] [<ffffffff81037428>] do_async_page_fault+0x28/0xa0
[ 32.818883] [<ffffffff8158d615>] async_page_fault+0x25/0x30
[ 33.488208] WARNING: CPU: 0 PID: 4030 at /storage/home/djwong/cdev/work/linux-mcsum/fs/tux3/filemap_mmap.c:110 tux3_set_page_dirty_assert+0x6f/0x80 [tux3]()
[ 33.495628] Modules linked in: tux3 scsi_debug eeprom sch_fq_codel lpc_ich mfd_core fuse nfsd auth_rpcgss exportfs virtio_scsi af_packet
[ 33.502865] CPU: 0 PID: 4030 Comm: wac Tainted: G D W 3.15.0-rc3-mcsum #5
[ 33.506464] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS Bochs 01/01/2011
[ 33.509237] 0000000000000009 ffff880063c81ce0 ffffffff81586cff 0000000000000000
[ 33.514244] ffff880063c81d18 ffffffff8107610d ffffea0001e85940 00007f1122796fb4
[ 33.518224] 0000000000000200 0000000000000000 ffffea00018f1a70 ffff880063c81d28
[ 33.521759] Call Trace:
[ 33.523208] [<ffffffff81586cff>] dump_stack+0x4d/0x6f
[ 33.525609] [<ffffffff8107610d>] warn_slowpath_common+0x7d/0xa0
[ 33.527875] [<ffffffff810761ea>] warn_slowpath_null+0x1a/0x20
[ 33.530154] [<ffffffffa00c89ef>] tux3_set_page_dirty_assert+0x6f/0x80 [tux3]
[ 33.532734] [<ffffffff81140047>] set_page_dirty+0x37/0x60
[ 33.535050] [<ffffffff8115de52>] do_shared_fault.isra.79+0x112/0x1c0
[ 33.537403] [<ffffffff8115ec0e>] handle_mm_fault+0x26e/0xc60
[ 33.539505] [<ffffffff810903ba>] ? __queue_delayed_work+0x9a/0x190
[ 33.541908] [<ffffffff81090bcd>] ? try_to_grab_pending+0x11d/0x160
[ 33.545810] [<ffffffff8103af8b>] __do_page_fault+0x11b/0x480
[ 33.548129] [<ffffffff811b6014>] ? sync_inodes_sb+0x174/0x1c0
[ 33.550389] [<ffffffff8103b342>] do_page_fault+0x22/0x30
[ 33.552617] [<ffffffff81037428>] do_async_page_fault+0x28/0xa0
[ 33.555052] [<ffffffff8158d615>] async_page_fault+0x25/0x30
[ 33.557249] ---[ end trace bb7f3e27b1dad3ea ]---
More information about the Tux3
mailing list