Hello, kernel test robot noticed "WARNING:at_lib/rcuref.c:#rcuref_put_slowpath" on: commit: 85bef61dcb6b15e3f68893e8bb8178f38ef4e58d ("[RFC PATCH v3 5/9] futex: Track the futex hash bucket.") url: https://github.com/intel-lab-lkp/linux/commits/Sebastian-Andrzej-Siewior/futex-Create-helper-function-to-initialize-a-hash-slot/20241116-230708 base: https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git 3b49a347d751553b1d1be69c8619ae2e85fdc28d patch link: https://lore.kernel.org/all/20241115172035.795842-6-bigeasy@xxxxxxxxxxxxx/ patch subject: [RFC PATCH v3 5/9] futex: Track the futex hash bucket. in testcase: boot config: i386-randconfig-006-20241118 compiler: gcc-12 test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G (please refer to attached dmesg/kmsg for entire log/backtrace) +----------------------------------------------+------------+------------+ | | 4e12d1b5d7 | 85bef61dcb | +----------------------------------------------+------------+------------+ | boot_successes | 12 | 0 | | boot_failures | 0 | 13 | | BUG:unable_to_handle_page_fault_for_address | 0 | 13 | | Oops | 0 | 13 | | EIP:futex_hash_priv_put | 0 | 13 | | Kernel_panic-not_syncing:Fatal_exception | 0 | 13 | | WARNING:at_lib/rcuref.c:#rcuref_put_slowpath | 0 | 4 | | EIP:rcuref_put_slowpath | 0 | 4 | +----------------------------------------------+------------+------------+ If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <oliver.sang@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-lkp/202411221706.c9d399d3-lkp@xxxxxxxxx [ 9.626353][ T1] ------------[ cut here ]------------ [ 9.626688][ T1] rcuref - imbalanced put() [ 9.626712][ T1] WARNING: CPU: 0 PID: 1 at lib/rcuref.c:267 rcuref_put_slowpath (lib/rcuref.c:267 (discriminator 13)) [ 9.627382][ T1] Modules linked in: [ 9.627583][ T1] CPU: 0 UID: 0 PID: 1 Comm: systemd Not tainted 6.12.0-rc2-00034-g85bef61dcb6b #1 [ 9.628038][ T1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 [ 9.628551][ T1] EIP: rcuref_put_slowpath (lib/rcuref.c:267 (discriminator 13)) [ 9.628854][ T1] Code: 00 b8 10 32 20 b2 6a 00 e8 cf 85 e4 ff 31 c9 ba 01 00 00 00 b8 f8 31 20 b2 6a 01 e8 bc 85 e4 ff 68 95 3c c7 b1 e8 d0 e9 d1 ff <0f> 0b 6a 01 31 c9 ba 01 00 00 00 b8 e0 31 20 b2 e8 9d 85 e4 ff 31 All code ======== 0: 00 b8 10 32 20 b2 add %bh,-0x4ddfcdf0(%rax) 6: 6a 00 push $0x0 8: e8 cf 85 e4 ff call 0xffffffffffe485dc d: 31 c9 xor %ecx,%ecx f: ba 01 00 00 00 mov $0x1,%edx 14: b8 f8 31 20 b2 mov $0xb22031f8,%eax 19: 6a 01 push $0x1 1b: e8 bc 85 e4 ff call 0xffffffffffe485dc 20: 68 95 3c c7 b1 push $0xffffffffb1c73c95 25: e8 d0 e9 d1 ff call 0xffffffffffd1e9fa 2a:* 0f 0b ud2 <-- trapping instruction 2c: 6a 01 push $0x1 2e: 31 c9 xor %ecx,%ecx 30: ba 01 00 00 00 mov $0x1,%edx 35: b8 e0 31 20 b2 mov $0xb22031e0,%eax 3a: e8 9d 85 e4 ff call 0xffffffffffe485dc 3f: 31 .byte 0x31 Code starting with the faulting instruction =========================================== 0: 0f 0b ud2 2: 6a 01 push $0x1 4: 31 c9 xor %ecx,%ecx 6: ba 01 00 00 00 mov $0x1,%edx b: b8 e0 31 20 b2 mov $0xb22031e0,%eax 10: e8 9d 85 e4 ff call 0xffffffffffe485b2 15: 31 .byte 0x31 [ 9.629828][ T1] EAX: 00000000 EBX: cccccc01 ECX: 00000000 EDX: 00000000 [ 9.630176][ T1] ESI: ec030980 EDI: b0219f04 EBP: b0219ec0 ESP: b0219eac [ 9.630523][ T1] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 EFLAGS: 00210246 [ 9.630906][ T1] CR0: 80050033 CR2: a7be1f90 CR3: 03786000 CR4: 00040690 [ 9.631261][ T1] Call Trace: [ 9.631431][ T1] ? show_regs (arch/x86/kernel/dumpstack.c:479 arch/x86/kernel/dumpstack.c:465) [ 9.631648][ T1] ? rcuref_put_slowpath (lib/rcuref.c:267 (discriminator 13)) [ 9.631912][ T1] ? __warn (kernel/panic.c:748) [ 9.632117][ T1] ? report_bug (lib/bug.c:201 lib/bug.c:219) [ 9.632345][ T1] ? rcuref_put_slowpath (lib/rcuref.c:267 (discriminator 13)) [ 9.632609][ T1] ? exc_overflow (arch/x86/kernel/traps.c:301) [ 9.632858][ T1] ? handle_bug (arch/x86/kernel/traps.c:285) [ 9.633081][ T1] ? exc_invalid_op (arch/x86/kernel/traps.c:309 (discriminator 1)) [ 9.637527][ T1] ? handle_exception (arch/x86/entry/entry_32.S:1054) [ 9.637796][ T1] ? add_chain_block (kernel/locking/lockdep.c:3439) [ 9.638033][ T1] ? exc_overflow (arch/x86/kernel/traps.c:301) [ 9.638297][ T1] ? rcuref_put_slowpath (lib/rcuref.c:267 (discriminator 13)) [ 9.638562][ T1] ? exc_overflow (arch/x86/kernel/traps.c:301) [ 9.638786][ T1] ? rcuref_put_slowpath (lib/rcuref.c:267 (discriminator 13)) [ 9.639047][ T1] futex_hash_priv_put (arch/x86/include/asm/preempt.h:84 include/linux/rcuref.h:151 kernel/futex/core.c:164) [ 9.639301][ T1] futex_hash_put (kernel/futex/core.c:177) [ 9.639525][ T1] futex_wake (kernel/futex/waitwake.c:180) [ 9.639740][ T1] do_futex (kernel/futex/syscalls.c:107) [ 9.639945][ T1] __ia32_sys_futex_time32 (kernel/futex/syscalls.c:509 kernel/futex/syscalls.c:492 kernel/futex/syscalls.c:492) [ 9.640212][ T1] ia32_sys_call (kbuild/obj/consumer/i386-randconfig-006-20241118/./arch/x86/include/generated/asm/syscalls_32.h:241) [ 9.640450][ T1] __do_fast_syscall_32 (arch/x86/entry/common.c:165 arch/x86/entry/common.c:386) [ 9.640779][ T1] do_fast_syscall_32 (arch/x86/entry/common.c:411) [ 9.641032][ T1] do_SYSENTER_32 (arch/x86/entry/common.c:450) [ 9.641267][ T1] entry_SYSENTER_32 (arch/x86/entry/entry_32.S:836) [ 9.641504][ T1] EIP: 0xa7f1556d [ 9.641687][ T1] Code: c4 01 10 03 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d 76 00 58 b8 77 00 00 00 cd 80 90 8d 76 All code ======== 0: c4 01 10 03 (bad) 4: 03 74 c0 01 add 0x1(%rax,%rax,8),%esi 8: 10 05 03 74 b8 01 adc %al,0x1b87403(%rip) # 0x1b87411 e: 10 06 adc %al,(%rsi) 10: 03 74 b4 01 add 0x1(%rsp,%rsi,4),%esi 14: 10 07 adc %al,(%rdi) 16: 03 74 b0 01 add 0x1(%rax,%rsi,4),%esi 1a: 10 08 adc %cl,(%rax) 1c: 03 74 d8 01 add 0x1(%rax,%rbx,8),%esi 20: 00 51 52 add %dl,0x52(%rcx) 23: 55 push %rbp 24: 89 e5 mov %esp,%ebp 26: 0f 34 sysenter 28: cd 80 int $0x80 2a:* 5d pop %rbp <-- trapping instruction 2b: 5a pop %rdx 2c: 59 pop %rcx 2d: c3 ret 2e: 90 nop 2f: 90 nop 30: 90 nop 31: 90 nop 32: 8d 76 00 lea 0x0(%rsi),%esi 35: 58 pop %rax 36: b8 77 00 00 00 mov $0x77,%eax 3b: cd 80 int $0x80 3d: 90 nop 3e: 8d .byte 0x8d 3f: 76 .byte 0x76 Code starting with the faulting instruction =========================================== 0: 5d pop %rbp 1: 5a pop %rdx 2: 59 pop %rcx 3: c3 ret 4: 90 nop 5: 90 nop 6: 90 nop 7: 90 nop 8: 8d 76 00 lea 0x0(%rsi),%esi b: 58 pop %rax c: b8 77 00 00 00 mov $0x77,%eax 11: cd 80 int $0x80 13: 90 nop 14: 8d .byte 0x8d 15: 76 .byte 0x76 [ 9.642620][ T1] EAX: ffffffda EBX: a7bfaa6c ECX: 00000081 EDX: 7fffffff [ 9.642963][ T1] ESI: 00000000 EDI: a7630000 EBP: 000000f0 ESP: af90bad0 [ 9.643313][ T1] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b EFLAGS: 00200246 [ 9.643690][ T1] irq event stamp: 113183 [ 9.643903][ T1] hardirqs last enabled at (113191): __up_console_sem (arch/x86/include/asm/irqflags.h:42 (discriminator 1) arch/x86/include/asm/irqflags.h:97 (discriminator 1) arch/x86/include/asm/irqflags.h:155 (discriminator 1) kernel/printk/printk.c:344 (discriminator 1)) [ 9.644340][ T1] hardirqs last disabled at (113198): __up_console_sem (kernel/printk/printk.c:342 (discriminator 1)) [ 9.644898][ T1] softirqs last enabled at (113010): handle_softirqs (kernel/softirq.c:401 kernel/softirq.c:582) [ 9.645347][ T1] softirqs last disabled at (113005): __do_softirq (kernel/softirq.c:589) [ 9.645752][ T1] ---[ end trace 0000000000000000 ]--- [ 9.662794][ T1] systemd[1]: RTC configured in localtime, applying delta of 0 minutes to system time. [ 9.664914][ T1] systemd[1]: Failed to find module 'autofs4' The kernel config and materials to reproduce are available at: https://download.01.org/0day-ci/archive/20241122/202411221706.c9d399d3-lkp@xxxxxxxxx -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki