bisecting cause commit starting from dcd34bd234181ec74f081c7d0025204afe6b213e building syzkaller on da505f84d3e8fc3bb7c54fea76eb5574987ee01a testing commit dcd34bd234181ec74f081c7d0025204afe6b213e with gcc (GCC) 8.1.0 all runs: crashed: general protection fault in ext4_writepages testing release v5.3 testing commit 4d856f72c10ecb060868ed10ff1b1453943fc6c8 with gcc (GCC) 8.1.0 all runs: OK # git bisect start dcd34bd234181ec74f081c7d0025204afe6b213e 4d856f72c10ecb060868ed10ff1b1453943fc6c8 Bisecting: 12283 revisions left to test after this (roughly 14 steps) [3cf7487c5de713b706ca2e1f66ec5f9b27fe265a] Merge tag 'sound-fix-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound testing commit 3cf7487c5de713b706ca2e1f66ec5f9b27fe265a with gcc (GCC) 8.1.0 all runs: OK # git bisect good 3cf7487c5de713b706ca2e1f66ec5f9b27fe265a Bisecting: 6255 revisions left to test after this (roughly 13 steps) [603436d6d778427c310d40816878d44aacf64f48] Merge remote-tracking branch 'rdma/for-next' testing commit 603436d6d778427c310d40816878d44aacf64f48 with gcc (GCC) 8.1.0 all runs: crashed: general protection fault in ext4_writepages # git bisect bad 603436d6d778427c310d40816878d44aacf64f48 Bisecting: 3006 revisions left to test after this (roughly 12 steps) [a5f2ccac0d4a3514548c943512363855cba0008e] Merge remote-tracking branch 'arc/for-next' testing commit a5f2ccac0d4a3514548c943512363855cba0008e with gcc (GCC) 8.1.0 all runs: OK # git bisect good a5f2ccac0d4a3514548c943512363855cba0008e Bisecting: 1529 revisions left to test after this (roughly 11 steps) [d5df1b395f1738dac51650b6a7a6bdf14006139c] Merge remote-tracking branch 'sh/sh-next' testing commit d5df1b395f1738dac51650b6a7a6bdf14006139c with gcc (GCC) 8.1.0 all runs: OK # git bisect good d5df1b395f1738dac51650b6a7a6bdf14006139c Bisecting: 858 revisions left to test after this (roughly 10 steps) [9f3f741e626efd9d60538bd008a13b0d7d757f05] Merge remote-tracking branch 'pstore/for-next/pstore' testing commit 9f3f741e626efd9d60538bd008a13b0d7d757f05 with gcc (GCC) 8.1.0 all runs: crashed: general protection fault in ext4_writepages # git bisect bad 9f3f741e626efd9d60538bd008a13b0d7d757f05 Bisecting: 328 revisions left to test after this (roughly 8 steps) [ee309762d2cbc391b390236aa6c257844a67ff53] Merge remote-tracking branch 'ext4/dev' testing commit ee309762d2cbc391b390236aa6c257844a67ff53 with gcc (GCC) 8.1.0 all runs: crashed: general protection fault in ext4_writepages # git bisect bad ee309762d2cbc391b390236aa6c257844a67ff53 Bisecting: 193 revisions left to test after this (roughly 8 steps) [6eb305c9273a2503dd89ec31993038d81c639e88] Merge branch 'for-next-next-v5.4-20191104' into for-next-20191104 testing commit 6eb305c9273a2503dd89ec31993038d81c639e88 with gcc (GCC) 8.1.0 all runs: OK # git bisect good 6eb305c9273a2503dd89ec31993038d81c639e88 Bisecting: 101 revisions left to test after this (roughly 7 steps) [ede62d7397ec546b7d82c7bc4ebd201681e48020] Merge branch 'xtensa-5.5' into xtensa-for-next testing commit ede62d7397ec546b7d82c7bc4ebd201681e48020 with gcc (GCC) 8.1.0 all runs: OK # git bisect good ede62d7397ec546b7d82c7bc4ebd201681e48020 Bisecting: 40 revisions left to test after this (roughly 6 steps) [d7c3c03f6a0bf7121d9dcb03cf0d1f85ed2aa4c5] Merge remote-tracking branch 'cifs/for-next' testing commit d7c3c03f6a0bf7121d9dcb03cf0d1f85ed2aa4c5 with gcc (GCC) 8.1.0 all runs: OK # git bisect good d7c3c03f6a0bf7121d9dcb03cf0d1f85ed2aa4c5 Bisecting: 24 revisions left to test after this (roughly 4 steps) [7f494a73ee5a742fcf29e82ada23da147060cb42] Pull MAINTAINERS file update. testing commit 7f494a73ee5a742fcf29e82ada23da147060cb42 with gcc (GCC) 8.1.0 all runs: OK # git bisect good 7f494a73ee5a742fcf29e82ada23da147060cb42 Bisecting: 11 revisions left to test after this (roughly 4 steps) [0d0a60c92fedbd4bf484c4c9b5cd49c16d05fb3f] Merge branch 'rh/dioread-nolock-1k' into dev testing commit 0d0a60c92fedbd4bf484c4c9b5cd49c16d05fb3f with gcc (GCC) 8.1.0 all runs: crashed: general protection fault in ext4_writepages # git bisect bad 0d0a60c92fedbd4bf484c4c9b5cd49c16d05fb3f Bisecting: 6 revisions left to test after this (roughly 3 steps) [464170647b5648bb81f3615567485fcb9a685bed] jbd2: Make state lock a spinlock testing commit 464170647b5648bb81f3615567485fcb9a685bed with gcc (GCC) 8.1.0 all runs: OK # git bisect good 464170647b5648bb81f3615567485fcb9a685bed Bisecting: 3 revisions left to test after this (roughly 2 steps) [2943fdbc688e7a1b4d9e3bc76a8e5ba624550213] ext4: Refactor mpage_map_and_submit_buffers function testing commit 2943fdbc688e7a1b4d9e3bc76a8e5ba624550213 with gcc (GCC) 8.1.0 all runs: OK # git bisect good 2943fdbc688e7a1b4d9e3bc76a8e5ba624550213 Bisecting: 1 revision left to test after this (roughly 1 step) [c33fbe8f673c55c178bfe69d0d9f06f1a68bf6cf] ext4: Enable blocksize < pagesize for dioread_nolock testing commit c33fbe8f673c55c178bfe69d0d9f06f1a68bf6cf with gcc (GCC) 8.1.0 all runs: crashed: general protection fault in ext4_writepages # git bisect bad c33fbe8f673c55c178bfe69d0d9f06f1a68bf6cf Bisecting: 0 revisions left to test after this (roughly 0 steps) [c8cc88163f40df39e50cda63ac361631864b453e] ext4: Add support for blocksize < pagesize in dioread_nolock testing commit c8cc88163f40df39e50cda63ac361631864b453e with gcc (GCC) 8.1.0 all runs: crashed: general protection fault in ext4_writepages # git bisect bad c8cc88163f40df39e50cda63ac361631864b453e c8cc88163f40df39e50cda63ac361631864b453e is the first bad commit commit c8cc88163f40df39e50cda63ac361631864b453e Author: Ritesh Harjani Date: Wed Oct 16 13:07:10 2019 +0530 ext4: Add support for blocksize < pagesize in dioread_nolock This patch adds the support for blocksize < pagesize for dioread_nolock feature. Since in case of blocksize < pagesize, we can have multiple small buffers of page as unwritten extents, we need to maintain a vector of these unwritten extents which needs the conversion after the IO is complete. Thus, we maintain a list of tuple pair (io_end_vec) for this & traverse this list to do the unwritten to written conversion. Signed-off-by: Ritesh Harjani Link: https://lore.kernel.org/r/20191016073711.4141-5-riteshh@linux.ibm.com Signed-off-by: Theodore Ts'o :040000 040000 f347968990e76700e3bdce9293416a5d3f32898d aa8ea6553f002c7fc4e1b581c8a1542336e91bd4 M fs revisions tested: 17, total time: 3h52m48.138995936s (build: 1h40m58.439956652s, test: 2h6m5.436023407s) first bad commit: c8cc88163f40df39e50cda63ac361631864b453e ext4: Add support for blocksize < pagesize in dioread_nolock cc: ["adilger.kernel@dilger.ca" "linux-ext4@vger.kernel.org" "linux-kernel@vger.kernel.org" "riteshh@linux.ibm.com" "tytso@mit.edu"] crash: general protection fault in ext4_writepages R13: 00000000004c0b96 R14: 00000000004d3700 R15: 0000000000000004 kasan: CONFIG_KASAN_INLINE enabled kasan: GPF could be caused by NULL-ptr deref or user memory access general protection fault: 0000 [#1] PREEMPT SMP KASAN CPU: 1 PID: 7718 Comm: syz-executor.2 Not tainted 5.4.0-rc3+ #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:mpage_map_and_submit_extent fs/ext4/inode.c:2557 [inline] RIP: 0010:ext4_writepages+0x122d/0x27b0 fs/ext4/inode.c:2911 Code: ff ff e8 a6 c0 ba ff 48 8b 85 18 fe ff ff 48 8b b5 38 fe ff ff 48 8d 78 10 48 89 fa 48 c1 ea 03 0f b6 8e c2 00 00 00 48 d3 e3 <42> 80 3c 22 00 0f 85 96 13 00 00 48 89 58 10 48 c7 c0 c8 64 18 89 RSP: 0018:ffff88808f0478d0 EFLAGS: 00010206 RAX: fffffffffffffff4 RBX: 00000000007ff000 RCX: 000000000000000c RDX: 0000000000000000 RSI: ffff8880a6597308 RDI: 0000000000000004 RBP: ffff88808f047af0 R08: ffffed1015d66b75 R09: ffffed1015d66b75 R10: ffffed1015d66b74 R11: ffff8880aeb35ba3 R12: dffffc0000000000 R13: ffff8880a6597308 R14: 0000000000000001 R15: ffff8880a6597308 FS: 00007efd7985d700(0000) GS:ffff8880aeb00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000001de5fd0 CR3: 00000000a11b7000 CR4: 00000000001406e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: ? 0xffffffff81000000 do_writepages+0xca/0x240 mm/page-writeback.c:2344 __filemap_fdatawrite_range+0x25f/0x330 mm/filemap.c:420 filemap_write_and_wait_range+0xb2/0x160 mm/filemap.c:680 ext4_punch_hole+0x208/0x1030 fs/ext4/inode.c:4314 ext4_fallocate+0x2c2/0x1c70 fs/ext4/extents.c:4889 vfs_fallocate+0x2b5/0x850 fs/open.c:309 ksys_fallocate+0x3c/0x80 fs/open.c:332 __do_sys_fallocate fs/open.c:340 [inline] __se_sys_fallocate fs/open.c:338 [inline] __x64_sys_fallocate+0x92/0xf0 fs/open.c:338 do_syscall_64+0xca/0x5d0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x45a219 Code: ad b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 7b b6 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007efd7985cc78 EFLAGS: 00000246 ORIG_RAX: 000000000000011d RAX: ffffffffffffffda RBX: 00007efd7985cc90 RCX: 000000000045a219 RDX: 0000000000000000 RSI: 0000000100000003 RDI: 0000000000000003 RBP: 000000000075bf20 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000028120001 R11: 0000000000000246 R12: 00007efd7985d6d4 R13: 00000000004c0b96 R14: 00000000004d3700 R15: 0000000000000004 Modules linked in: ---[ end trace 0c23badb9a4ae4b1 ]--- RIP: 0010:mpage_map_and_submit_extent fs/ext4/inode.c:2557 [inline] RIP: 0010:ext4_writepages+0x122d/0x27b0 fs/ext4/inode.c:2911 Code: ff ff e8 a6 c0 ba ff 48 8b 85 18 fe ff ff 48 8b b5 38 fe ff ff 48 8d 78 10 48 89 fa 48 c1 ea 03 0f b6 8e c2 00 00 00 48 d3 e3 <42> 80 3c 22 00 0f 85 96 13 00 00 48 89 58 10 48 c7 c0 c8 64 18 89 RSP: 0018:ffff88808f0478d0 EFLAGS: 00010206 RAX: fffffffffffffff4 RBX: 00000000007ff000 RCX: 000000000000000c RDX: 0000000000000000 RSI: ffff8880a6597308 RDI: 0000000000000004 RBP: ffff88808f047af0 R08: ffffed1015d66b75 R09: ffffed1015d66b75 R10: ffffed1015d66b74 R11: ffff8880aeb35ba3 R12: dffffc0000000000 R13: ffff8880a6597308 R14: 0000000000000001 R15: ffff8880a6597308 FS: 00007efd7985d700(0000) GS:ffff8880aeb00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000001de5fd0 CR3: 00000000a11b7000 CR4: 00000000001406e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400