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