bisecting cause commit starting from c68c5373c504078cc0e0edc7d5c88b47ca308144 building syzkaller on d797d2018f9550530c469ce03b5ae36cfa1ebd23 testing commit c68c5373c504078cc0e0edc7d5c88b47ca308144 with gcc (GCC) 8.1.0 all runs: crashed: WARNING in iov_iter_pipe testing release v5.3 testing commit 4d856f72c10ecb060868ed10ff1b1453943fc6c8 with gcc (GCC) 8.1.0 all runs: OK # git bisect start c68c5373c504078cc0e0edc7d5c88b47ca308144 4d856f72c10ecb060868ed10ff1b1453943fc6c8 Bisecting: 12458 revisions left to test after this (roughly 14 steps) [b55f0097ae1da2520108bc426275c1ec5f857b78] Merge branch 'nvme-5.4' of git://git.infradead.org/nvme into for-linus testing commit b55f0097ae1da2520108bc426275c1ec5f857b78 with gcc (GCC) 8.1.0 all runs: OK # git bisect good b55f0097ae1da2520108bc426275c1ec5f857b78 Bisecting: 6434 revisions left to test after this (roughly 13 steps) [4f18480665e8e6bba2f250a0a275854401fe4882] Merge remote-tracking branch 'rdma/for-next' testing commit 4f18480665e8e6bba2f250a0a275854401fe4882 with gcc (GCC) 8.1.0 all runs: crashed: WARNING in iov_iter_pipe # git bisect bad 4f18480665e8e6bba2f250a0a275854401fe4882 Bisecting: 3065 revisions left to test after this (roughly 12 steps) [a1a4565d01404315f840732e171adfc4c9ef1e2f] Merge remote-tracking branch 'arm-perf/for-next/perf' testing commit a1a4565d01404315f840732e171adfc4c9ef1e2f with gcc (GCC) 8.1.0 all runs: OK # git bisect good a1a4565d01404315f840732e171adfc4c9ef1e2f Bisecting: 1506 revisions left to test after this (roughly 11 steps) [095197a3c5a665e53e1d1ac67197338c07f31e18] Merge remote-tracking branch 'xtensa/xtensa-for-next' testing commit 095197a3c5a665e53e1d1ac67197338c07f31e18 with gcc (GCC) 8.1.0 all runs: OK # git bisect good 095197a3c5a665e53e1d1ac67197338c07f31e18 Bisecting: 649 revisions left to test after this (roughly 10 steps) [3b66998f7833c23cfa080a2b08647b813cd191df] Merge remote-tracking branch 'hid/for-next' testing commit 3b66998f7833c23cfa080a2b08647b813cd191df with gcc (GCC) 8.1.0 all runs: crashed: WARNING in iov_iter_pipe # git bisect bad 3b66998f7833c23cfa080a2b08647b813cd191df Bisecting: 424 revisions left to test after this (roughly 9 steps) [21f46da7ea92588c372501196f39e476e0db0248] Merge remote-tracking branch 'xfs/for-next' testing commit 21f46da7ea92588c372501196f39e476e0db0248 with gcc (GCC) 8.1.0 all runs: crashed: WARNING in iov_iter_pipe # git bisect bad 21f46da7ea92588c372501196f39e476e0db0248 Bisecting: 231 revisions left to test after this (roughly 8 steps) [23971f6584434610ace932aab2480dcd88513b71] Merge remote-tracking branch 'erofs/dev' testing commit 23971f6584434610ace932aab2480dcd88513b71 with gcc (GCC) 8.1.0 all runs: OK # git bisect good 23971f6584434610ace932aab2480dcd88513b71 Bisecting: 115 revisions left to test after this (roughly 7 steps) [68d715ef07dfb42a9bab1ec98e44c8efe55ce6fa] Merge remote-tracking branch 'ext4/dev' testing commit 68d715ef07dfb42a9bab1ec98e44c8efe55ce6fa with gcc (GCC) 8.1.0 all runs: crashed: WARNING in iov_iter_pipe # git bisect bad 68d715ef07dfb42a9bab1ec98e44c8efe55ce6fa Bisecting: 64 revisions left to test after this (roughly 6 steps) [378f32bab3714f04c4e0c3aee4129f6703805550] ext4: introduce direct I/O write using iomap infrastructure testing commit 378f32bab3714f04c4e0c3aee4129f6703805550 with gcc (GCC) 8.1.0 all runs: crashed: WARNING in iov_iter_pipe # git bisect bad 378f32bab3714f04c4e0c3aee4129f6703805550 Bisecting: 25 revisions left to test after this (roughly 5 steps) [c039b99792726346ad46ff17c5a5bcb77a5edac4] iomap: use a srcmap for a read-modify-write I/O testing commit c039b99792726346ad46ff17c5a5bcb77a5edac4 with gcc (GCC) 8.1.0 all runs: OK # git bisect good c039b99792726346ad46ff17c5a5bcb77a5edac4 Bisecting: 12 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: OK # git bisect good 0d0a60c92fedbd4bf484c4c9b5cd49c16d05fb3f Bisecting: 6 revisions left to test after this (roughly 3 steps) [c8fdfe294187455b70e42a15df35a3e1882f332d] ext4: move set iomap routines into a separate helper ext4_set_iomap() testing commit c8fdfe294187455b70e42a15df35a3e1882f332d with gcc (GCC) 8.1.0 all runs: OK # git bisect good c8fdfe294187455b70e42a15df35a3e1882f332d Bisecting: 3 revisions left to test after this (roughly 2 steps) [b1b4705d54abedfd69dcdf42779c521aa1e0fbd3] ext4: introduce direct I/O read using iomap infrastructure testing commit b1b4705d54abedfd69dcdf42779c521aa1e0fbd3 with gcc (GCC) 8.1.0 all runs: crashed: WARNING in iov_iter_pipe # git bisect bad b1b4705d54abedfd69dcdf42779c521aa1e0fbd3 Bisecting: 0 revisions left to test after this (roughly 1 step) [09edf4d381957b144440bac18a4769c53063b943] ext4: introduce new callback for IOMAP_REPORT testing commit 09edf4d381957b144440bac18a4769c53063b943 with gcc (GCC) 8.1.0 all runs: OK # git bisect good 09edf4d381957b144440bac18a4769c53063b943 b1b4705d54abedfd69dcdf42779c521aa1e0fbd3 is the first bad commit commit b1b4705d54abedfd69dcdf42779c521aa1e0fbd3 Author: Matthew Bobrowski Date: Tue Nov 5 23:01:37 2019 +1100 ext4: introduce direct I/O read using iomap infrastructure This patch introduces a new direct I/O read path which makes use of the iomap infrastructure. The new function ext4_do_read_iter() is responsible for calling into the iomap infrastructure via iomap_dio_rw(). If the read operation performed on the inode is not supported, which is checked via ext4_dio_supported(), then we simply fallback and complete the I/O using buffered I/O. Existing direct I/O read code path has been removed, as it is now redundant. Signed-off-by: Matthew Bobrowski Reviewed-by: Jan Kara Reviewed-by: Ritesh Harjani Link: https://lore.kernel.org/r/f98a6f73fadddbfbad0fc5ed04f712ca0b799f37.1572949325.git.mbobrowski@mbobrowski.org Signed-off-by: Theodore Ts'o :040000 040000 39896fae8462d31afb4431de8e0791dae8f389ad 4cd178e1434685c8276ed592903f7b651430bcc9 M fs revisions tested: 16, total time: 3h46m6.244238462s (build: 1h36m24.378883976s, test: 2h4m9.574452037s) first bad commit: b1b4705d54abedfd69dcdf42779c521aa1e0fbd3 ext4: introduce direct I/O read using iomap infrastructure cc: ["jack@suse.cz" "mbobrowski@mbobrowski.org" "riteshh@linux.ibm.com" "tytso@mit.edu"] crash: WARNING in iov_iter_pipe ------------[ cut here ]------------ WARNING: CPU: 1 PID: 7644 at lib/iov_iter.c:1162 iov_iter_pipe+0x20c/0x320 lib/iov_iter.c:1161 Kernel panic - not syncing: panic_on_warn set ... CPU: 1 PID: 7644 Comm: syz-executor.3 Not tainted 5.4.0-rc3+ #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x113/0x167 lib/dump_stack.c:113 panic+0x22a/0x4e3 kernel/panic.c:221 __warn.cold.11+0x25/0x30 kernel/panic.c:582 report_bug+0x1b0/0x270 lib/bug.c:195 fixup_bug arch/x86/kernel/traps.c:179 [inline] do_error_trap+0x11b/0x200 arch/x86/kernel/traps.c:272 do_invalid_op+0x36/0x40 arch/x86/kernel/traps.c:291 invalid_op+0x23/0x30 arch/x86/entry/entry_64.S:1028 RIP: 0010:iov_iter_pipe+0x20c/0x320 lib/iov_iter.c:1162 Code: ea 03 0f b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 04 84 d2 75 37 44 89 63 24 48 83 c4 10 5b 41 5c 41 5d 41 5e 5d c3 0f 0b <0f> 0b e9 6b fe ff ff 4c 89 ef 48 89 4d d0 48 89 55 d8 e8 ed 71 93 RSP: 0018:ffff88807f68f9a8 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff88807f68fa30 RCX: 0000000000000000 RDX: ffff8880a1442800 RSI: 1ffff1101428851a RDI: ffff88807f68fa30 RBP: ffff88807f68f9d8 R08: 0000000000000000 R09: dffffc0000000000 R10: ffff8880a4be9598 R11: ffffffff891bbd07 R12: 0000000000000010 R13: ffff8880a14428c8 R14: ffff8880a14428d0 R15: ffff8880a4be95f8 generic_file_splice_read+0x95/0x7b0 fs/splice.c:303 do_splice_to+0xe3/0x120 fs/splice.c:877 splice_direct_to_actor+0x295/0x870 fs/splice.c:954 do_splice_direct+0x14c/0x270 fs/splice.c:1063 do_sendfile+0x481/0xd10 fs/read_write.c:1464 __do_sys_sendfile64 fs/read_write.c:1525 [inline] __se_sys_sendfile64 fs/read_write.c:1511 [inline] __x64_sys_sendfile64+0x198/0x1e0 fs/read_write.c:1511 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:00007f4fd7e0fc78 EFLAGS: 00000246 ORIG_RAX: 0000000000000028 RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 000000000045a219 RDX: 0000000000000000 RSI: 0000000000000003 RDI: 0000000000000005 RBP: 000000000075bfc8 R08: 0000000000000000 R09: 0000000000000000 R10: 00000000ffffffff R11: 0000000000000246 R12: 00007f4fd7e106d4 R13: 00000000004c7f94 R14: 00000000004de3b0 R15: 00000000ffffffff Kernel Offset: disabled Rebooting in 86400 seconds..