Hi Matthew, On 03/29/2018 10:41 PM, Matthew Wilcox wrote: > From: Matthew Wilcox <mawilcox@xxxxxxxxxxxxx> > > I'd like to thank Andrew for taking the first eight XArray patches > into -next. He's understandably nervous about taking the rest of the > patches into -next given how few of the remaining patches have review > tags on them. So ... if you're on the cc, I'd really appreciate a review > on something that you feel somewhat responsible for, eg the particular > filesystem (nilfs, f2fs, lustre) that I've touched, or something in the > mm/ or fs/ directories that you've worked on recently. > > This is against next-20180329. I tried these patches against next-20180329 and added the patch for the bug reported by Mike Kravetz. I am getting the following BUG on ext4 and xfs, running generic/048 tests of fstests. Each trace is from a different instance/run. BTW, for my convenience, do you have these patches in a public git tree? [ 222.007071] BUG: Bad page state in process kswapd0 pfn:132f25 [ 222.007108] page:ffffd6f144cbc940 count:0 mapcount:0 mapping:ffff94b2735e3918 index:0x1 [ 222.007140] flags: 0x4000000000000000() [ 222.007157] raw: 4000000000000000 ffff94b2735e3918 0000000000000001 00000000ffffffff [ 222.007186] raw: dead000000000100 dead000000000200 0000000000000000 0000000000000000 [ 222.007216] page dumped because: non-NULL mapping [ 222.007288] CPU: 0 PID: 55 Comm: kswapd0 Tainted: G E 4.16.0-rc7-next-20180329-xarray #2 [ 222.007289] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014 [ 222.007290] Call Trace: [ 222.007297] dump_stack+0x63/0x85 [ 222.007300] bad_page+0xd5/0x140 [ 222.007302] free_pages_check_bad+0x5f/0x70 [ 222.007304] free_pcppages_bulk+0x423/0x5c0 [ 222.007308] ? xas_load+0x3d/0xc0 [ 222.007310] free_unref_page_commit+0xad/0xd0 [ 222.007312] free_unref_page_list+0x101/0x190 [ 222.007315] release_pages+0x17c/0x3f0 [ 222.007317] __pagevec_release+0x2f/0x40 [ 222.007319] invalidate_mapping_pages+0x2d8/0x310 [ 222.007323] ? memcg_drain_all_list_lrus+0x120/0x120 [ 222.007326] inode_lru_isolate+0x131/0x180 [ 222.007328] __list_lru_walk_one.isra.7+0x92/0x150 [ 222.007329] ? iput+0x220/0x220 [ 222.007331] list_lru_walk_one+0x23/0x30 [ 222.007332] prune_icache_sb+0x40/0x60 [ 222.007334] super_cache_scan+0x137/0x1b0 [ 222.007336] shrink_slab.part.53+0x1ae/0x3a0 [ 222.007338] shrink_slab+0x35/0x40 [ 222.007340] shrink_node+0x158/0x490 [ 222.007342] balance_pgdat+0x149/0x320 [ 222.007344] kswapd+0x15f/0x400 [ 222.007347] ? wait_woken+0x80/0x80 [ 222.007350] kthread+0x121/0x140 [ 222.007352] ? balance_pgdat+0x320/0x320 [ 222.007353] ? kthread_create_worker_on_cpu+0x50/0x50 [ 222.007356] ret_from_fork+0x35/0x40 [ 222.007357] Disabling lock debugging due to kernel taint 17252.906122] ------------[ cut here ]------------ [17252.906124] kernel BUG at fs/inode.c:512! [17252.906150] invalid opcode: 0000 [#1] SMP PTI [17252.906467] CPU: 2 PID: 31588 Comm: umount Tainted: G E 4.16.0-rc7-next-20180329-xarray #2 [17252.906492] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014 [17252.906523] RIP: 0010:clear_inode+0x8a/0xa0 [17252.906536] RSP: 0018:ffffba2302213d28 EFLAGS: 00010086 [17252.906552] RAX: 0000000000000000 RBX: ffff8f1efb3976d8 RCX: 0000000000000000 [17252.906571] RDX: 0000000000000001 RSI: ffffffffffffffff RDI: ffff8f1efb397858 [17252.906590] RBP: ffffba2302213d38 R08: 0000000000000000 R09: 0000000000000000 [17252.906609] R10: ffffba2302213ae8 R11: ffffba2302213ae8 R12: ffff8f1efb397858 [17252.906628] R13: ffffffffc067e580 R14: ffff8f1dcc4281e8 R15: ffff8f1ef9fddc68 [17252.906648] FS: 00007f6b9eae0fc0(0000) GS:ffff8f1effd00000(0000) knlGS:0000000000000000 [17252.906670] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [17252.906686] CR2: 000055927e5f2118 CR3: 00000000ab29a000 CR4: 00000000000006e0 [17252.906708] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [17252.906728] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [17252.906747] Call Trace: [17252.906786] ext4_clear_inode+0x1a/0x80 [ext4] [17252.906808] ext4_evict_inode+0x54/0x590 [ext4] [17252.906823] evict+0xca/0x1a0 [17252.906833] dispose_list+0x39/0x50 [17252.906844] evict_inodes+0x158/0x170 [17252.906857] generic_shutdown_super+0x44/0x120 [17252.906871] kill_block_super+0x27/0x50 [17252.906883] deactivate_locked_super+0x48/0x80 [17252.906897] deactivate_super+0x40/0x60 [17252.906910] cleanup_mnt+0x3f/0x80 [17252.906921] __cleanup_mnt+0x12/0x20 [17252.906933] task_work_run+0x9d/0xc0 [17252.907593] exit_to_usermode_loop+0xa5/0xb0 [17252.908237] do_syscall_64+0x14a/0x1e0 [17252.908884] entry_SYSCALL_64_after_hwframe+0x3d/0xa2 [17252.909522] RIP: 0033:0x7f6b9e3b2a57 [17252.910154] RSP: 002b:00007ffff1d2e6f8 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6 [17252.910810] RAX: 0000000000000000 RBX: 000055927e5e7970 RCX: 00007f6b9e3b2a57 [17252.911462] RDX: 0000000000000001 RSI: 0000000000000000 RDI: 000055927e5f08b0 [17252.912109] RBP: 0000000000000000 R08: 0000000000000004 R09: 00000000ffffffff [17252.912765] R10: 000055927e5f08d0 R11: 0000000000000246 R12: 000055927e5f08b0 [17252.913420] R13: 00007f6b9e8cd1c4 R14: 000055927e5e7b50 R15: 0000000000000000 [17252.914053] Code: 74 2d a8 40 75 2b 48 8b 83 30 01 00 00 48 8d 93 30 01 00 00 48 39 c2 75 1a 48 c7 83 a0 00 00 00 60 00 00 00 5b 41 5c 5d c3 0f 0b <0f> 0b 0f 0b 0f 0b 0f 0b 0f 0b 66 90 66 2e 0f 1f 84 00 00 00 00 [17252.915348] RIP: clear_inode+0x8a/0xa0 RSP: ffffba2302213d28 [17252.915968] ---[ end trace eca08dd7383f4777 ]--- And with xfs: [ 818.192680] ------------[ cut here ]------------ [ 818.192682] kernel BUG at fs/inode.c:512! [ 818.192710] invalid opcode: 0000 [#1] SMP PTI [ 818.193034] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.0.0-prebuilt.qemu-project.org 04/01/2014 [ 818.193063] RIP: 0010:clear_inode+0x8a/0xa0 [ 818.193075] RSP: 0018:ffffa8ced21cbd70 EFLAGS: 00010086 [ 818.193090] RAX: 0000000000000000 RBX: ffff933521e294f8 RCX: 0000000000000000 [ 818.193108] RDX: 0000000000000001 RSI: ffffffffffffffff RDI: ffff933521e29678 [ 818.193127] RBP: ffffa8ced21cbd80 R08: 0000000000000000 R09: 0000000000000000 [ 818.193145] R10: ffffa8ced21cbb18 R11: ffffa8ced21cbb18 R12: ffff933521e29678 [ 818.193164] R13: ffffffffc0921920 R14: ffff9334afd1f8b8 R15: ffff933523592c68 [ 818.193183] FS: 00007f3da7d1dfc0(0000) GS:ffff93353fd80000(0000) knlGS:0000000000000000 [ 818.193203] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 818.193219] CR2: 00005577f6a42118 CR3: 00000000b52ae000 CR4: 00000000000006e0 [ 818.193241] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 818.193260] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 818.193278] Call Trace: [ 818.193290] evict+0x190/0x1a0 [ 818.193300] dispose_list+0x39/0x50 [ 818.193311] evict_inodes+0x158/0x170 [ 818.193324] generic_shutdown_super+0x44/0x120 [ 818.193337] kill_block_super+0x27/0x50 [ 818.193349] deactivate_locked_super+0x48/0x80 [ 818.193362] deactivate_super+0x40/0x60 [ 818.193374] cleanup_mnt+0x3f/0x80 [ 818.193385] __cleanup_mnt+0x12/0x20 [ 818.193397] task_work_run+0x9d/0xc0 [ 818.193410] exit_to_usermode_loop+0xa5/0xb0 [ 818.193423] do_syscall_64+0x14a/0x1e0 [ 818.193435] entry_SYSCALL_64_after_hwframe+0x3d/0xa2 [ 818.193450] RIP: 0033:0x7f3da75efa57 [ 818.194081] RSP: 002b:00007fff9bf60d08 EFLAGS: 00000246 ORIG_RAX: 00000000000000a6 [ 818.194724] RAX: 0000000000000000 RBX: 00005577f6a37970 RCX: 00007f3da75efa57 [ 818.195328] RDX: 0000000000000001 RSI: 0000000000000000 RDI: 00005577f6a40ff0 [ 818.195937] RBP: 0000000000000000 R08: 0000000000000003 R09: 00000000ffffffff [ 818.196540] R10: 00005577f6a41010 R11: 0000000000000246 R12: 00005577f6a40ff0 [ 818.197150] R13: 00007f3da7b0a1c4 R14: 00005577f6a37b50 R15: 0000000000000000 [ 818.197761] Code: 74 2d a8 40 75 2b 48 8b 83 30 01 00 00 48 8d 93 30 01 00 00 48 39 c2 75 1a 48 c7 83 a0 00 00 00 60 00 00 00 5b 41 5c 5d c3 0f 0b <0f> 0b 0f 0b 0f 0b 0f 0b 0f 0b 66 90 66 2e 0f 1f 84 00 00 00 00 [ 818.198996] RIP: clear_inode+0x8a/0xa0 RSP: ffffa8ced21cbd70 [ 818.199556] ---[ end trace d7d41ef1791143ea ]--- [ 1976.784393] ------------[ cut here ]------------ -- Goldwyn