bisecting cause commit starting from b10b8ad862118bf42c28a98b0f067619aadcfb23 building syzkaller on 9e1fa68ee1625a7f0ef03906ee1abb40cb987fbf testing commit b10b8ad862118bf42c28a98b0f067619aadcfb23 with gcc (GCC) 8.1.0 kernel signature: e97d348c0d0d0c15e20e8e42a31f9af50207f8988f2b5c3fd6a2b78d3d5027fe run #0: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #1: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #2: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #3: crashed: BUG: unable to handle kernel paging request in __traceiter_ext4_journal_start run #4: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #5: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #6: crashed: BUG: unable to handle kernel paging request in __traceiter_ext4_journal_start run #7: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #8: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #9: crashed: BUG: unable to handle kernel paging request in __traceiter_ext4_journal_start testing release v5.8 testing commit bcf876870b95592b52519ed4aafcf9d95999bc9c with gcc (GCC) 8.1.0 kernel signature: 95a8dc9fc1610ba802ead0e77981a3b65e0907fb7c52f9b76f6ef6b8d1db11dd run #0: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #1: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #2: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #3: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #4: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #5: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #6: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #7: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #8: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #9: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb testing release v5.7 testing commit 3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162 with gcc (GCC) 8.1.0 kernel signature: 861ade73ce1cba2e64cd1c7f29c46066faa372cfabb283e9d2b2c80f97713947 run #0: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #1: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #2: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #3: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #4: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #5: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #6: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #7: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #8: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #9: crashed: WARNING in tracepoint_probe_register_prio testing release v5.6 testing commit 7111951b8d4973bda27ff663f2cf18b663d15b48 with gcc (GCC) 8.1.0 kernel signature: a986abb36df717a74fa450452f7aed7f6c837438c48e627f5a6a48b2ae522018 run #0: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #1: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #2: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #3: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #4: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #5: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #6: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #7: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #8: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #9: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 testing release v5.5 testing commit d5226fa6dbae0569ee43ecfc08bdcd6770fc4755 with gcc (GCC) 8.1.0 kernel signature: 9f190d183b4a2f887ebcb944547a44a571bf197e0e1de26569e03dd62cb5395a run #0: crashed: BUG: unable to handle kernel paging request in bpf_trace_run5 run #1: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #2: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #3: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #4: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #5: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #6: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #7: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #8: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 run #9: crashed: KASAN: vmalloc-out-of-bounds Read in bpf_trace_run5 testing release v5.4 testing commit 219d54332a09e8d8741c1e1982f5eae56099de85 with gcc (GCC) 8.1.0 kernel signature: e2800e4d888dc0d67fab1f4d8c90b80a3986709425ffc4020194ef156f9aaea6 run #0: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 run #1: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #2: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #3: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 run #4: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #5: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #6: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 run #7: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 run #8: crashed: BUG: unable to handle kernel paging request in __ext4_journal_start_sb run #9: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 testing release v5.3 testing commit 4d856f72c10ecb060868ed10ff1b1453943fc6c8 with gcc (GCC) 8.1.0 kernel signature: 2472e5dbe9583b939d0811c59b9b32d14eb0ab2ecaed16ee1ded0658ec799087 run #0: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 run #1: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 run #2: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 run #3: crashed: BUG: unable to handle kernel paging request in __bpf_trace_ext4_journal_start run #4: crashed: BUG: unable to handle kernel paging request in __bpf_trace_ext4_journal_start run #5: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 run #6: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 run #7: crashed: BUG: unable to handle kernel paging request in __bpf_trace_ext4_journal_start run #8: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 run #9: crashed: BUG: unable to handle kernel paging request in bpf_trace_run4 testing release v5.2 testing commit 0ecfebd2b52404ae0c54a878c872bb93363ada36 with gcc (GCC) 8.1.0 kernel signature: 0c63ce8ca3c2c7fb1bc596836b8ff07d0c2bd1ab1ff33d8869fbf068b9670b94 run #0: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #1: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #2: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #3: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #4: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #5: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #6: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #7: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #8: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #9: crashed: BUG: unable to handle kernel paging request in __bpf_trace_ext4_journal_start testing release v5.1 testing commit e93c9c99a629c61837d5a7fc2120cd2b6c70dbdd with gcc (GCC) 8.1.0 kernel signature: b99e097d264db2c7ab6af9cf9eb7fed56607a222219d52b2754bd6d6b50196a0 all runs: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset testing release v5.0 testing commit 1c163f4c7b3f621efff9b28a47abb36f7378d783 with gcc (GCC) 8.1.0 kernel signature: 1909e3904f7e297a576db95539cd1856321b34d44638a7af658a9dd6dfc1ad81 all runs: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset testing release v4.20 testing commit 8fe28cb58bcb235034b64cbbb7550a8a43fd88be with gcc (GCC) 8.1.0 kernel signature: 8d236039134282210e607881791f84df5e91c351eb87c962463e1b3bd2fe0773 run #0: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #1: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #2: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #3: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #4: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #5: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #6: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #7: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #8: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #9: OK testing release v4.19 testing commit 84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d with gcc (GCC) 8.1.0 kernel signature: 5551326a7ecef777023ed8120478fee6c3116187d23d9c32aa32f6fb53bee81e all runs: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset testing release v4.18 testing commit 94710cac0ef4ee177a63b5227664b38c95bbf703 with gcc (GCC) 8.1.0 kernel signature: d7f110fdb0246134b590dba4dc6e94ee09ddd6353280493b590075ff3d7b278f all runs: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset testing release v4.17 testing commit 29dcea88779c856c7dc92040a0c01233263101d4 with gcc (GCC) 8.1.0 kernel signature: 738d3b9422426c72577314942940deafe6f114274a5a570ee0477efc92a55b65 all runs: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset testing release v4.16 testing commit 0adb32858b0bddf4ada5f364a84ed60b196dbcda with gcc (GCC) 8.1.0 kernel signature: b13c976ffc825b52ec77a121e51f0ca409c9fee307aa4b29087c52509d0afdb8 run #0: basic kernel testing failed: UBSAN: undefined-behaviour in handle_null_ptr_deref run #1: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #2: basic kernel testing failed: UBSAN: undefined-behaviour in handle_null_ptr_deref run #3: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #4: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #5: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #6: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #7: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset run #8: basic kernel testing failed: UBSAN: undefined-behaviour in handle_null_ptr_deref run #9: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_vq_reset testing release v4.15 testing commit d8a5b80568a9cb66810e75b182018e9edb68e8ff with gcc (GCC) 8.1.0 ./arch/x86/include/asm/bootparam_utils.h:37: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:39: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:42: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:45: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:48: undefined reference to `__ubsan_handle_type_mismatch_v1' testing release v4.14 testing commit bebc6082da0a9f5d47a1ea2edc099bf671058bd4 with gcc (GCC) 8.1.0 ./arch/x86/include/asm/bootparam_utils.h:37: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:39: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:42: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:45: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:48: undefined reference to `__ubsan_handle_type_mismatch_v1' testing release v4.13 testing commit 569dbb88e80deb68974ef6fdd6a13edb9d686261 with gcc (GCC) 8.1.0 ./arch/x86/include/asm/bootparam_utils.h:36: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:38: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:41: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:44: undefined reference to `__ubsan_handle_type_mismatch_v1' ./arch/x86/include/asm/bootparam_utils.h:47: undefined reference to `__ubsan_handle_type_mismatch_v1' testing release v4.12 testing commit 6f7da290413ba713f0cdd9ff1a2a9bb129ef4f6c with gcc (GCC) 8.1.0 arch/x86/entry/common.c:173: undefined reference to `__ubsan_handle_type_mismatch_v1' ./include/linux/compiler.h:254: undefined reference to `__ubsan_handle_type_mismatch_v1' ./include/linux/tracehook.h:190: undefined reference to `__ubsan_handle_type_mismatch_v1' ./include/linux/thread_info.h:60: undefined reference to `__ubsan_handle_type_mismatch_v1' ./include/trace/events/syscalls.h:17: undefined reference to `__ubsan_handle_type_mismatch_v1' testing release v4.11 testing commit a351e9b9fc24e982ec2f0e76379a49826036da12 with gcc (GCC) 7.3.0 kernel signature: ca980dc3ec8ed6c49ea0ff7a32c702e93359915b818d5ba13b0f1ddc6a9aac88 run #0: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #1: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #2: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #3: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #4: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #5: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #6: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #7: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #8: crashed: BUG: sleeping function called from invalid context in tap_get_minor run #9: crashed: BUG: sleeping function called from invalid context in tap_get_minor testing release v4.10 testing commit c470abd4fde40ea6a0846a2beab642a578c0b8cd with gcc (GCC) 5.5.0 kernel signature: b111616c3594224cde3faeb44cc2d4ab870c77f4881574b9652d36ffbc153def all runs: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le testing release v4.9 testing commit 69973b830859bc6529a7a0468ba0d80ee5117826 with gcc (GCC) 5.5.0 kernel signature: bf2115481cca959b24f8a2446bab4ee947d9aceb575c08f516edcf16de4f82c5 all runs: OK # git bisect start a351e9b9fc24e982ec2f0e76379a49826036da12 69973b830859bc6529a7a0468ba0d80ee5117826 Bisecting: 14068 revisions left to test after this (roughly 14 steps) [55aac6ef53e114c28170ee3f79065cfa8ca9cf3f] Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending testing commit 55aac6ef53e114c28170ee3f79065cfa8ca9cf3f with gcc (GCC) 5.5.0 kernel signature: e8333d4e20c55294221347fd2c2c12739948a73e9cc6090e56204f389e04745a run #0: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #1: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #2: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #3: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #4: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #5: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #6: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #7: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #8: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #9: OK # git bisect skip 55aac6ef53e114c28170ee3f79065cfa8ca9cf3f Bisecting: 14068 revisions left to test after this (roughly 14 steps) [15883a43af0bcd10b3f3173bca4a0e60518bc154] net: sun: cassini: use new api ethtool_{get|set}_link_ksettings testing commit 15883a43af0bcd10b3f3173bca4a0e60518bc154 with gcc (GCC) 5.5.0 kernel signature: 636115b72ef9ce45b5f0580e69e5882171dffeb0d9961ef35ce2132fd01e2f4c all runs: boot failed: UBSAN: undefined-behaviour in acpi_ds_create_operand # git bisect skip 15883a43af0bcd10b3f3173bca4a0e60518bc154 Bisecting: 14068 revisions left to test after this (roughly 14 steps) [1a287cfea17c3c14c03151fa970baf86b9055c26] btrfs: remove unused parameters from btrfs_cmp_data testing commit 1a287cfea17c3c14c03151fa970baf86b9055c26 with gcc (GCC) 5.5.0 kernel signature: 1254d2f1236c75a91b8ebefd7e3afe7eb359dfde523f4fc43622272cb98f341d run #0: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #1: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #2: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #3: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #4: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #5: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #6: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #7: OK run #8: OK run #9: OK # git bisect skip 1a287cfea17c3c14c03151fa970baf86b9055c26 Bisecting: 14068 revisions left to test after this (roughly 14 steps) [b42c6761fd1651f564491b53016046c9ebf0b2a9] amd-xgbe: Be sure to set MDIO modes on device (re)start testing commit b42c6761fd1651f564491b53016046c9ebf0b2a9 with gcc (GCC) 5.5.0 kernel signature: 73331204bcacc9f48cba586db78d131e2c255fa6a97e6582013c69708e03f2ad run #0: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #1: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #2: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #3: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #4: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #5: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #6: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #7: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #8: basic kernel testing failed: UBSAN: undefined-behaviour in vhost_init_is_le run #9: crashed: BUG: sleeping function called from invalid context in tap_get_minor # git bisect bad b42c6761fd1651f564491b53016046c9ebf0b2a9 Bisecting: 12526 revisions left to test after this (roughly 14 steps) [6c5da8031a3abfad259190d35f83d89568b72ee2] [media] cx231xx: Fix I2C on Internal Master 3 Bus testing commit 6c5da8031a3abfad259190d35f83d89568b72ee2 with gcc (GCC) 5.5.0 kernel signature: 79a2662f422d12bf90d09205d33bc9f36d9510f60baf2ff6b56fc950c3e4556d run #0: crashed: WARNING in nf_unregister_net_hook run #1: OK run #2: OK run #3: OK run #4: OK run #5: OK run #6: OK run #7: OK run #8: OK run #9: OK # git bisect bad 6c5da8031a3abfad259190d35f83d89568b72ee2 Bisecting: 5958 revisions left to test after this (roughly 13 steps) [72cca7baf4fba777b8ab770b902cf2e08941773f] Merge tag 'staging-4.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging testing commit 72cca7baf4fba777b8ab770b902cf2e08941773f with gcc (GCC) 5.5.0 kernel signature: a8f9c06b59f2a158ffb3aba093383c13eb17a71725c85b9b4b8201bf47265317 all runs: boot failed: UBSAN: undefined-behaviour in acpi_ds_create_operand # git bisect skip 72cca7baf4fba777b8ab770b902cf2e08941773f Bisecting: 5958 revisions left to test after this (roughly 13 steps) [fc833c2a2f4129c42efdaed64b9eb6e9ae5fdcee] md/raid5-cache: use ring add to prevent overflow testing commit fc833c2a2f4129c42efdaed64b9eb6e9ae5fdcee with gcc (GCC) 5.5.0 kernel signature: 7c2b9b680094b072665620f9825f6a9deed870fa6b2195cba4beda163b5393fe run #0: crashed: WARNING in nf_unregister_net_hook run #1: OK run #2: OK run #3: OK run #4: OK run #5: OK run #6: OK run #7: OK run #8: OK run #9: OK # git bisect bad fc833c2a2f4129c42efdaed64b9eb6e9ae5fdcee Bisecting: 25 revisions left to test after this (roughly 5 steps) [581dbd94da80c845b28666716e30c22c0834756a] md/bitmap: add blktrace event for writes to the bitmap testing commit 581dbd94da80c845b28666716e30c22c0834756a with gcc (GCC) 5.5.0 kernel signature: eddbecb77363f9b752c0384a93b2a48d436623c72a973e073148452af6fbae08 all runs: OK # git bisect good 581dbd94da80c845b28666716e30c22c0834756a Bisecting: 12 revisions left to test after this (roughly 4 steps) [688834e6ae6b21e3d98b5cf2586aa4a9b515c3a0] md/failfast: add failfast flag for md to be used by some personalities. testing commit 688834e6ae6b21e3d98b5cf2586aa4a9b515c3a0 with gcc (GCC) 5.5.0 kernel signature: cf40a97f05d9ba1e9760b962a435443af788611da7223ceaab466350e808159e run #0: crashed: WARNING in nf_unregister_net_hook run #1: OK run #2: OK run #3: OK run #4: OK run #5: OK run #6: OK run #7: OK run #8: OK run #9: OK # git bisect bad 688834e6ae6b21e3d98b5cf2586aa4a9b515c3a0 Bisecting: 6 revisions left to test after this (roughly 3 steps) [1e6d690b9334b7e1b31d25fd8d93e980e449a5f9] md/r5cache: caching phase of r5cache testing commit 1e6d690b9334b7e1b31d25fd8d93e980e449a5f9 with gcc (GCC) 5.5.0 kernel signature: 01af9cd1c92c24750bd9b1dcbb6bca0351da9e2ee008c567be67371b027f4c79 run #0: crashed: UBSAN: undefined-behaviour in batadv_iv_ogm_queue_add run #1: OK run #2: OK run #3: OK run #4: OK run #5: OK run #6: OK run #7: OK run #8: OK run #9: OK # git bisect bad 1e6d690b9334b7e1b31d25fd8d93e980e449a5f9 Bisecting: 2 revisions left to test after this (roughly 2 steps) [c757ec95c22036b1cb85c56ede368bf8f6c08658] md/r5cache: Check array size in r5l_init_log testing commit c757ec95c22036b1cb85c56ede368bf8f6c08658 with gcc (GCC) 5.5.0 kernel signature: aba18528662c6ac97c6aebb370027b65fb59234efafd273aa490a3b0a2b35cd3 all runs: OK # git bisect good c757ec95c22036b1cb85c56ede368bf8f6c08658 Bisecting: 0 revisions left to test after this (roughly 1 step) [2ded370373a400c20cf0c6e941e724e61582a867] md/r5cache: State machine for raid5-cache write back mode testing commit 2ded370373a400c20cf0c6e941e724e61582a867 with gcc (GCC) 5.5.0 kernel signature: b95b1c90d21e366e8a9268a346ddf6157935b1e2a26c9fc78310925b80e22f26 all runs: OK # git bisect good 2ded370373a400c20cf0c6e941e724e61582a867 1e6d690b9334b7e1b31d25fd8d93e980e449a5f9 is the first bad commit commit 1e6d690b9334b7e1b31d25fd8d93e980e449a5f9 Author: Song Liu Date: Thu Nov 17 15:24:39 2016 -0800 md/r5cache: caching phase of r5cache As described in previous patch, write back cache operates in two phases: caching and writing-out. The caching phase works as: 1. write data to journal (r5c_handle_stripe_dirtying, r5c_cache_data) 2. call bio_endio (r5c_handle_data_cached, r5c_return_dev_pending_writes). Then the writing-out phase is as: 1. Mark the stripe as write-out (r5c_make_stripe_write_out) 2. Calcualte parity (reconstruct or RMW) 3. Write parity (and maybe some other data) to journal device 4. Write data and parity to RAID disks This patch implements caching phase. The cache is integrated with stripe cache of raid456. It leverages code of r5l_log to write data to journal device. Writing-out phase of the cache is implemented in the next patch. With r5cache, write operation does not wait for parity calculation and write out, so the write latency is lower (1 write to journal device vs. read and then write to raid disks). Also, r5cache will reduce RAID overhead (multipile IO due to read-modify-write of parity) and provide more opportunities of full stripe writes. This patch adds 2 flags to stripe_head.state: - STRIPE_R5C_PARTIAL_STRIPE, - STRIPE_R5C_FULL_STRIPE, Instead of inactive_list, stripes with cached data are tracked in r5conf->r5c_full_stripe_list and r5conf->r5c_partial_stripe_list. STRIPE_R5C_FULL_STRIPE and STRIPE_R5C_PARTIAL_STRIPE are flags for stripes in these lists. Note: stripes in r5c_full/partial_stripe_list are not considered as "active". For RMW, the code allocates an extra page for each data block being updated. This is stored in r5dev->orig_page and the old data is read into it. Then the prexor calculation subtracts ->orig_page from the parity block, and the reconstruct calculation adds the ->page data back into the parity block. r5cache naturally excludes SkipCopy. When the array has write back cache, async_copy_data() will not skip copy. There are some known limitations of the cache implementation: 1. Write cache only covers full page writes (R5_OVERWRITE). Writes of smaller granularity are write through. 2. Only one log io (sh->log_io) for each stripe at anytime. Later writes for the same stripe have to wait. This can be improved by moving log_io to r5dev. 3. With writeback cache, read path must enter state machine, which is a significant bottleneck for some workloads. 4. There is no per stripe checkpoint (with r5l_payload_flush) in the log, so recovery code has to replay more than necessary data (sometimes all the log from last_checkpoint). This reduces availability of the array. This patch includes a fix proposed by ZhengYuan Liu Signed-off-by: Song Liu Signed-off-by: Shaohua Li drivers/md/raid5-cache.c | 242 +++++++++++++++++++++++++++++++++++++++++++++-- drivers/md/raid5.c | 152 ++++++++++++++++++++++++----- drivers/md/raid5.h | 19 +++- 3 files changed, 381 insertions(+), 32 deletions(-) culprit signature: 01af9cd1c92c24750bd9b1dcbb6bca0351da9e2ee008c567be67371b027f4c79 parent signature: b95b1c90d21e366e8a9268a346ddf6157935b1e2a26c9fc78310925b80e22f26 revisions tested: 34, total time: 6h30m9.64813799s (build: 3h14m32.321766588s, test: 3h10m55.763170822s) first bad commit: 1e6d690b9334b7e1b31d25fd8d93e980e449a5f9 md/r5cache: caching phase of r5cache recipients (to): ["linux-kernel@vger.kernel.org" "shli@fb.com" "songliubraving@fb.com"] recipients (cc): ["linux-raid@vger.kernel.org" "shli@kernel.org"] crash: UBSAN: undefined-behaviour in batadv_iv_ogm_queue_add batman_adv: batadv0: Interface deactivated: batadv_slave_1 batman_adv: batadv0: Removing interface: batadv_slave_1 ================================================================================ device bridge_slave_1 left promiscuous mode bridge0: port 2(bridge_slave_1) entered disabled state UBSAN: Undefined behaviour in net/batman-adv/bat_iv_ogm.c:780:36 member access within null pointer of type 'struct batadv_ogm_packet' CPU: 1 PID: 15869 Comm: kworker/u4:3 Not tainted 4.9.0-rc4-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: bat_events batadv_iv_send_outstanding_bat_ogm_packet ffff88010d9cf818 ffffffff8381b081 1ffffffff11b8e8a 0000000041b58ab3 ffffffff886f84ac ffffffff8381aec4 0000000000000086 ffffffff00000018 ffff88010d9cf840 ffff88010d9cf7f0 ffff880125df4500 ffffffff87cb0be0 Call Trace: [] __dump_stack lib/dump_stack.c:15 [inline] [] dump_stack+0x1bd/0x29c lib/dump_stack.c:51 [] ubsan_epilogue+0xd/0x8a lib/ubsan.c:164 [] handle_null_ptr_deref lib/ubsan.c:281 [inline] [] __ubsan_handle_type_mismatch+0x157/0x411 lib/ubsan.c:323 [] batadv_iv_ogm_queue_add+0x1489/0x15f0 net/batman-adv/bat_iv_ogm.c:780 [] batadv_iv_ogm_schedule+0xa76/0xf60 net/batman-adv/bat_iv_ogm.c:984 [] batadv_iv_send_outstanding_bat_ogm_packet+0x385/0xf90 net/batman-adv/bat_iv_ogm.c:1810 [] process_one_work+0x7ab/0x1ae0 kernel/workqueue.c:2096 [] worker_thread+0x60c/0x1450 kernel/workqueue.c:2230 [] kthread+0x23c/0x390 kernel/kthread.c:209 [] ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:433 ================================================================================ 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 Modules linked in: CPU: 1 PID: 15869 Comm: kworker/u4:3 Not tainted 4.9.0-rc4-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: bat_events batadv_iv_send_outstanding_bat_ogm_packet task: ffff880125df4500 task.stack: ffff88010d9c8000 RIP: 0010:[] [] batadv_iv_ogm_queue_add+0xa5/0x15f0 net/batman-adv/bat_iv_ogm.c:780 RSP: 0018:ffff88010d9cf8e8 EFLAGS: 00010246 RAX: dffffc0000000000 RBX: ffff880120bf7cb0 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000003 RBP: ffff88010d9cf9f8 R08: 0000000000000007 R09: 0000000000000000 R10: ffff880125df4d10 R11: 0000000000000006 R12: 000000000000003c R13: ffff880120bf7c80 R14: 0000000000000000 R15: dffffc0000000000 FS: 0000000000000000(0000) GS:ffff88012c100000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fdb0d490000 CR3: 000000011a1a0000 CR4: 00000000001406e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Stack: ffff880125df4d00 0000000041b58ab3 ffffffff886f79a6 ffffffff81575900 0000000000000000 0000000000000000 0000000000000024 0000000000000000 ffff88010d9cf938 ffffffff815ceacb ffff880120bf7c80 ffff880120bf7c80 Call Trace: [] batadv_iv_ogm_schedule+0xa76/0xf60 net/batman-adv/bat_iv_ogm.c:984 [] batadv_iv_send_outstanding_bat_ogm_packet+0x385/0xf90 net/batman-adv/bat_iv_ogm.c:1810 [] process_one_work+0x7ab/0x1ae0 kernel/workqueue.c:2096 [] worker_thread+0x60c/0x1450 kernel/workqueue.c:2230 [] kthread+0x23c/0x390 kernel/kthread.c:209 [] ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:433 Code: f1 f1 c7 40 04 00 f4 f4 f4 c7 40 08 f3 f3 f3 f3 0f 84 eb 13 00 00 49 8d 7e 03 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 04 02 48 89 fa 83 e2 07 38 d0 7f 08 84 c0 0f 85 b6 13 00 RIP [] batadv_iv_ogm_queue_add+0xa5/0x15f0 net/batman-adv/bat_iv_ogm.c:780 RSP ---[ end trace 1e8695affd563946 ]---