Greeting, FYI, we noticed the following commit (built with gcc-9): commit: 8fd8d23ab10cc2fceeac25ea7b0e2eaf98e78d64 ("[PATCH v3 3/3] mm: fs: Invalidate BH LRU during page migration") url: https://github.com/0day-ci/linux/commits/Minchan-Kim/mm-replace-migrate_prep-with-lru_add_drain_all/20210311-001714 base: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git 144c79ef33536b4ecb4951e07dbc1f2b7fa99d32 in testcase: blktests version: blktests-x86_64-a210761-1_20210124 with following parameters: test: nbd-group-01 ucode: 0xe2 on test machine: 4 threads Intel(R) Core(TM) i5-6500 CPU @ 3.20GHz with 32G memory caused below changes (please refer to attached dmesg/kmsg for entire log/backtrace): If you fix the issue, kindly add following tag Reported-by: kernel test robot [ 40.465061] WARNING: CPU: 2 PID: 5207 at fs/buffer.c:1177 __brelse (kbuild/src/consumer/fs/buffer.c:1177 kbuild/src/consumer/fs/buffer.c:1171) [ 40.465066] Modules linked in: nbd loop xfs libcrc32c dm_multipath dm_mod ipmi_devintf ipmi_msghandler sd_mod t10_pi sg intel_rapl_msr intel_rapl_common x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel rapl i915 mei_wdt intel_cstate wmi_bmof intel_gtt drm_kms_helper syscopyarea ahci intel_uncore sysfillrect sysimgblt libahci fb_sys_fops drm libata mei_me mei intel_pch_thermal wmi video intel_pmc_core acpi_pad ip_tables [ 40.465086] CPU: 2 PID: 5207 Comm: mount_clear_soc Tainted: G I 5.12.0-rc2-00062-g8fd8d23ab10c #1 [ 40.465088] Hardware name: Dell Inc. OptiPlex 7040/0Y7WYT, BIOS 1.1.1 10/07/2015 [ 40.465089] RIP: 0010:__brelse (kbuild/src/consumer/fs/buffer.c:1177 kbuild/src/consumer/fs/buffer.c:1171) [ 40.465091] Code: 00 00 00 00 00 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 8b 47 60 85 c0 74 05 f0 ff 4f 60 c3 48 c7 c7 d8 99 57 82 e8 02 5d 80 00 <0f> 0b c3 0f 1f 44 00 00 55 65 ff 05 13 79 c8 7e 53 48 c7 c3 c0 89 All code ======== 0: 00 00 add %al,(%rax) 2: 00 00 add %al,(%rax) 4: 00 0f add %cl,(%rdi) 6: 1f (bad) 7: 84 00 test %al,(%rax) 9: 00 00 add %al,(%rax) b: 00 00 add %al,(%rax) d: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 12: 8b 47 60 mov 0x60(%rdi),%eax 15: 85 c0 test %eax,%eax 17: 74 05 je 0x1e 19: f0 ff 4f 60 lock decl 0x60(%rdi) 1d: c3 retq 1e: 48 c7 c7 d8 99 57 82 mov $0xffffffff825799d8,%rdi 25: e8 02 5d 80 00 callq 0x805d2c 2a:* 0f 0b ud2 <-- trapping instruction 2c: c3 retq 2d: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 32: 55 push %rbp 33: 65 ff 05 13 79 c8 7e incl %gs:0x7ec87913(%rip) # 0x7ec8794d 3a: 53 push %rbx 3b: 48 rex.W 3c: c7 .byte 0xc7 3d: c3 retq 3e: c0 .byte 0xc0 3f: 89 .byte 0x89 Code starting with the faulting instruction =========================================== 0: 0f 0b ud2 2: c3 retq 3: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 8: 55 push %rbp 9: 65 ff 05 13 79 c8 7e incl %gs:0x7ec87913(%rip) # 0x7ec87923 10: 53 push %rbx 11: 48 rex.W 12: c7 .byte 0xc7 13: c3 retq 14: c0 .byte 0xc0 15: 89 .byte 0x89 [ 40.465092] RSP: 0018:ffffc90000138fa8 EFLAGS: 00010086 [ 40.465094] RAX: 0000000000000000 RBX: ffff888871d289c0 RCX: 0000000000000027 [ 40.465095] RDX: 0000000000000027 RSI: 0000000000000002 RDI: ffff888871d177f8 [ 40.465096] RBP: ffff888871d28a40 R08: ffff888871d177f0 R09: ffffc90000138f40 [ 40.465096] R10: 0000000000000001 R11: ffffc90000138ff8 R12: ffff888871d312c0 [ 40.465097] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 [ 40.465098] FS: 0000000000000000(0000) GS:ffff888871d00000(0000) knlGS:0000000000000000 [ 40.465099] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 40.465100] CR2: 00007f99690c38a0 CR3: 000000087020a001 CR4: 00000000003706e0 [ 40.465101] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 40.465102] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 40.465102] Call Trace: [ 40.465104] [ 40.465104] invalidate_bh_lru (kbuild/src/consumer/fs/buffer.c:1427) [ 40.465107] flush_smp_call_function_queue (kbuild/src/consumer/kernel/smp.c:247 kbuild/src/consumer/kernel/smp.c:396) [ 40.465111] __sysvec_call_function (kbuild/src/consumer/arch/x86/include/asm/jump_label.h:25 kbuild/src/consumer/include/linux/jump_label.h:200 kbuild/src/consumer/arch/x86/include/asm/trace/irq_vectors.h:93 kbuild/src/consumer/arch/x86/kernel/smp.c:240) [ 40.465113] sysvec_call_function (kbuild/src/consumer/arch/x86/kernel/smp.c:234 (discriminator 14)) [ 40.465116] [ 40.465116] asm_sysvec_call_function (kbuild/src/consumer/arch/x86/include/asm/idtentry.h:641) [ 40.465119] RIP: 0010:console_unlock (kbuild/src/consumer/kernel/printk/printk.c:2586) [ 40.465121] Code: ff 85 c0 0f 85 3a ff ff ff e8 04 f6 ff ff 85 c0 0f 85 06 fd ff ff e9 28 ff ff ff e8 92 2b 00 00 48 85 ed 74 01 fb 8b 44 24 14 <85> c0 0f 84 39 fd ff ff 31 d2 be 1b 0a 00 00 48 c7 c7 e3 41 55 82 All code ======== 0: ff 85 c0 0f 85 3a incl 0x3a850fc0(%rbp) 6: ff (bad) 7: ff (bad) 8: ff (bad) 9: e8 04 f6 ff ff callq 0xfffffffffffff612 e: 85 c0 test %eax,%eax 10: 0f 85 06 fd ff ff jne 0xfffffffffffffd1c 16: e9 28 ff ff ff jmpq 0xffffffffffffff43 1b: e8 92 2b 00 00 callq 0x2bb2 20: 48 85 ed test %rbp,%rbp 23: 74 01 je 0x26 25: fb sti 26: 8b 44 24 14 mov 0x14(%rsp),%eax 2a:* 85 c0 test %eax,%eax <-- trapping instruction 2c: 0f 84 39 fd ff ff je 0xfffffffffffffd6b 32: 31 d2 xor %edx,%edx 34: be 1b 0a 00 00 mov $0xa1b,%esi 39: 48 c7 c7 e3 41 55 82 mov $0xffffffff825541e3,%rdi Code starting with the faulting instruction =========================================== 0: 85 c0 test %eax,%eax 2: 0f 84 39 fd ff ff je 0xfffffffffffffd41 8: 31 d2 xor %edx,%edx a: be 1b 0a 00 00 mov $0xa1b,%esi f: 48 c7 c7 e3 41 55 82 mov $0xffffffff825541e3,%rdi [ 40.465122] RSP: 0018:ffffc900077d7be0 EFLAGS: 00000206 [ 40.465124] RAX: 0000000000000000 RBX: ffffffff8356c2ac RCX: 0000000000000000 [ 40.465124] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff8356e738 [ 40.465125] RBP: 0000000000000200 R08: 0000000000000001 R09: 0000000000000019 [ 40.465126] R10: 000000000000072d R11: 000000002d2d2d2d R12: ffffffff8356e738 [ 40.465126] R13: 0000000000000000 R14: 0000000000000034 R15: 0000000000000000 [ 40.465129] vprintk_emit (kbuild/src/consumer/arch/x86/include/asm/preempt.h:85 kbuild/src/consumer/kernel/printk/printk.c:2099) [ 40.465130] ? release_pages (kbuild/src/consumer/mm/swap.c:983) [ 40.465132] printk (kbuild/src/consumer/kernel/printk/printk.c:2150) [ 40.465135] __warn_printk (kbuild/src/consumer/kernel/panic.c:646) [ 40.465137] __brelse (kbuild/src/consumer/fs/buffer.c:1177 kbuild/src/consumer/fs/buffer.c:1171) [ 40.465138] invalidate_bh_lru (kbuild/src/consumer/fs/buffer.c:1427) [ 40.465140] lru_add_drain (kbuild/src/consumer/mm/swap.c:725) [ 40.465141] exit_mmap (kbuild/src/consumer/mm/mmap.c:3215) [ 40.465144] ? filename_lookup (kbuild/src/consumer/fs/namei.c:2465) [ 40.465146] ? __cond_resched (kbuild/src/consumer/kernel/sched/core.c:6990) [ 40.465148] mmput (kbuild/src/consumer/kernel/fork.c:1083 kbuild/src/consumer/kernel/fork.c:1103) [ 40.465149] do_exit (kbuild/src/consumer/arch/x86/include/asm/bitops.h:207 kbuild/src/consumer/include/asm-generic/bitops/instrumented-non-atomic.h:135 kbuild/src/consumer/include/linux/thread_info.h:104 kbuild/src/consumer/kernel/exit.c:502 kbuild/src/consumer/kernel/exit.c:812) [ 40.465152] ? do_user_addr_fault (kbuild/src/consumer/arch/x86/include/asm/jump_label.h:25 kbuild/src/consumer/include/linux/jump_label.h:200 kbuild/src/consumer/include/linux/mmap_lock.h:41 kbuild/src/consumer/include/linux/mmap_lock.h:144 kbuild/src/consumer/arch/x86/mm/fault.c:1414) [ 40.465154] do_group_exit (kbuild/src/consumer/include/linux/list.h:282 kbuild/src/consumer/include/linux/sched/signal.h:684 kbuild/src/consumer/kernel/exit.c:907) [ 40.465156] __x64_sys_exit_group (kbuild/src/consumer/kernel/exit.c:933) [ 40.465159] do_syscall_64 (kbuild/src/consumer/arch/x86/entry/common.c:46) [ 40.465160] entry_SYSCALL_64_after_hwframe (kbuild/src/consumer/arch/x86/entry/entry_64.S:112) [ 40.465162] RIP: 0033:0x7f9968fcc9d6 [ 40.465164] Code: Unable to access opcode bytes at RIP 0x7f9968fcc9ac. Code starting with the faulting instruction =========================================== To reproduce: git clone https://github.com/intel/lkp-tests.git cd lkp-tests bin/lkp install job.yaml # job file is attached in this email bin/lkp split-job --compatible job.yaml bin/lkp run compatible-job.yaml --- 0DAY/LKP+ Test Infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/lkp@lists.01.org Intel Corporation Thanks, Oliver Sang