Hello, kernel test robot noticed "WARNING:inconsistent_lock_state" on: commit: 000f7cce0fe19452a5ecbc350b16d7d8ac68d8ba ("mm, slub: cheaper locking for percpu sheaves") https://git.kernel.org/cgit/linux/kernel/git/vbabka/linux.git slub-percpu-sheaves-v1r1 in testcase: boot compiler: clang-18 test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G (please refer to attached dmesg/kmsg for entire log/backtrace) +-------------------------------------------------+------------+------------+ | | aa03930ed5 | 000f7cce0f | +-------------------------------------------------+------------+------------+ | WARNING:inconsistent_lock_state | 0 | 18 | | inconsistent{SOFTIRQ-ON-W}->{IN-SOFTIRQ-W}usage | 0 | 18 | | RIP:default_idle | 0 | 18 | +-------------------------------------------------+------------+------------+ 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/202409031302.dba16910-lkp@xxxxxxxxx [ 28.196191][ C1] WARNING: inconsistent lock state [ 28.196613][ C1] 6.10.0-rc1-00013-g000f7cce0fe1 #1 Not tainted [ 28.197105][ C1] -------------------------------- [ 28.197503][ C1] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. [ 28.198039][ C1] swapper/1/0 [HC0[0]:SC1[1]:HE1:SE0] takes: [ 28.198510][ C1] ffffe8ffffd00d60 (&pcs->lock.llock){+.?.}-{2:2}, at: kmem_cache_alloc_noprof (include/linux/local_lock_internal.h:29) [ 28.199302][ C1] {SOFTIRQ-ON-W} state was registered at: [ 28.199749][ C1] lock_acquire (kernel/locking/lockdep.c:5754) [ 28.200114][ C1] kmem_cache_alloc_noprof (include/linux/local_lock_internal.h:29) [ 28.200552][ C1] do_set_mempolicy (mm/mempolicy.c:333) [ 28.200941][ C1] numa_policy_init (mm/mempolicy.c:3127) [ 28.201328][ C1] start_kernel (init/main.c:1063) [ 28.201689][ C1] x86_64_start_reservations (??:?) [ 28.202121][ C1] x86_64_start_kernel (arch/x86/kernel/head64.c:437) [ 28.202519][ C1] common_startup_64 (arch/x86/kernel/head_64.S:421) [ 28.202912][ C1] irq event stamp: 38366 [ 28.203242][ C1] hardirqs last enabled at (38366): _raw_spin_unlock_irqrestore (arch/x86/include/asm/irqflags.h:42 arch/x86/include/asm/irqflags.h:77 arch/x86/include/asm/irqflags.h:135 include/linux/spinlock_api_smp.h:151 kernel/locking/spinlock.c:194) [ 28.204062][ C1] hardirqs last disabled at (38365): _raw_spin_lock_irqsave (arch/x86/include/asm/preempt.h:79 include/linux/spinlock_api_smp.h:109 kernel/locking/spinlock.c:162) [ 28.204877][ C1] softirqs last enabled at (38338): irq_exit_rcu (kernel/softirq.c:651) [ 28.205590][ C1] softirqs last disabled at (38345): irq_exit_rcu (kernel/softirq.c:651) [ 28.206304][ C1] [ 28.206304][ C1] other info that might help us debug this: [ 28.206933][ C1] Possible unsafe locking scenario: [ 28.206933][ C1] [ 28.207514][ C1] CPU0 [ 28.207770][ C1] ---- [ 28.208027][ C1] lock(&pcs->lock.llock); [ 28.208384][ C1] <Interrupt> [ 28.208662][ C1] lock(&pcs->lock.llock); [ 28.209028][ C1] [ 28.209028][ C1] *** DEADLOCK *** [ 28.209028][ C1] [ 28.209657][ C1] 1 lock held by swapper/1/0: [ 28.210020][ C1] #0: ffffffff882dee40 (rcu_read_lock){....}-{1:2}, at: netif_receive_skb_list_internal (include/linux/rcupdate.h:329 include/linux/rcupdate.h:781 net/core/dev.c:5844) [ 28.210872][ C1] [ 28.210872][ C1] stack backtrace: [ 28.211329][ C1] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.10.0-rc1-00013-g000f7cce0fe1 #1 [ 28.212019][ C1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 [ 28.212836][ C1] Call Trace: [ 28.213096][ C1] <IRQ> [ 28.213321][ C1] dump_stack_lvl (lib/dump_stack.c:116) [ 28.213678][ C1] valid_state (kernel/locking/lockdep.c:?) [ 28.214029][ C1] mark_lock_irq (kernel/locking/lockdep.c:?) [ 28.214383][ C1] ? stack_trace_save (kernel/stacktrace.c:123) [ 28.214766][ C1] ? save_trace (kernel/locking/lockdep.c:?) [ 28.215113][ C1] ? swiotlb_tbl_map_single (include/linux/spinlock.h:? kernel/dma/swiotlb.c:1116 kernel/dma/swiotlb.c:1267 kernel/dma/swiotlb.c:1402) [ 28.215557][ C1] mark_lock (kernel/locking/lockdep.c:4678) [ 28.215892][ C1] __lock_acquire (kernel/locking/lockdep.c:?) [ 28.216270][ C1] lock_acquire (kernel/locking/lockdep.c:5754) [ 28.216634][ C1] ? kmem_cache_alloc_noprof (include/linux/local_lock_internal.h:29) [ 28.217115][ C1] ? kmem_cache_alloc_noprof (include/linux/local_lock_internal.h:29) [ 28.217546][ C1] kmem_cache_alloc_noprof (include/linux/local_lock_internal.h:29) [ 28.217967][ C1] ? kmem_cache_alloc_noprof (include/linux/local_lock_internal.h:29) [ 28.218401][ C1] ? skb_clone (net/core/skbuff.c:2053) [ 28.218751][ C1] skb_clone (net/core/skbuff.c:2053) [ 28.219085][ C1] ic_bootp_recv (include/linux/skbuff.h:2036) [ 28.219442][ C1] ? lock_is_held_type (kernel/locking/lockdep.c:5495 kernel/locking/lockdep.c:5825) [ 28.219837][ C1] ? ic_bootp_send_if (net/ipv4/ipconfig.c:990) [ 28.220230][ C1] __netif_receive_skb_core (net/core/dev.c:? net/core/dev.c:5575) [ 28.220715][ C1] __netif_receive_skb_list_core (net/core/dev.c:5701) [ 28.221187][ C1] netif_receive_skb_list_internal (net/core/dev.c:5769) [ 28.221668][ C1] ? netif_receive_skb_list_internal (include/linux/rcupdate.h:329 include/linux/rcupdate.h:781 net/core/dev.c:5844) [ 28.222163][ C1] napi_complete_done (include/linux/list.h:37 include/net/gro.h:516 net/core/dev.c:6202) [ 28.222556][ C1] ? e1000_alloc_jumbo_rx_buffers (drivers/net/ethernet/intel/e1000/e1000_main.c:4348) [ 28.223031][ C1] e1000_clean (drivers/net/ethernet/intel/e1000/e1000_main.c:3809) [ 28.223388][ C1] ? mark_lock (arch/x86/include/asm/bitops.h:227 arch/x86/include/asm/bitops.h:239 include/asm-generic/bitops/instrumented-non-atomic.h:142 kernel/locking/lockdep.c:228 kernel/locking/lockdep.c:4656) [ 28.223728][ C1] ? __lock_acquire (kernel/locking/lockdep.c:?) [ 28.224122][ C1] __napi_poll (net/core/dev.c:6721) [ 28.224472][ C1] net_rx_action (net/core/dev.c:6790 net/core/dev.c:6906) [ 28.224836][ C1] handle_softirqs (arch/x86/include/asm/jump_label.h:27 include/linux/jump_label.h:207 include/trace/events/irq.h:142 kernel/softirq.c:555) [ 28.225210][ C1] ? irq_exit_rcu (kernel/softirq.c:651) [ 28.225567][ C1] irq_exit_rcu (kernel/softirq.c:651) [ 28.225910][ C1] common_interrupt (arch/x86/kernel/irq.c:278) [ 28.226283][ C1] </IRQ> [ 28.226515][ C1] <TASK> [ 28.226745][ C1] asm_common_interrupt (arch/x86/include/asm/idtentry.h:693) [ 28.227143][ C1] RIP: 0010:default_idle (arch/x86/include/asm/irqflags.h:37 arch/x86/include/asm/irqflags.h:72 arch/x86/kernel/process.c:743) [ 28.227549][ C1] Code: 89 07 49 c7 c0 08 00 00 00 4d 29 c8 4c 01 c7 4c 29 c2 e9 72 ff ff ff f3 0f 1e fa eb 07 0f 00 2d 13 70 31 00 f3 0f 1e fa fb f4 <fa> c3 cc cc cc cc cc 66 0f 1f 44 00 00 f3 0f 1e fa e9 d7 ff ff ff All code ======== 0: 89 07 mov %eax,(%rdi) 2: 49 c7 c0 08 00 00 00 mov $0x8,%r8 9: 4d 29 c8 sub %r9,%r8 c: 4c 01 c7 add %r8,%rdi f: 4c 29 c2 sub %r8,%rdx 12: e9 72 ff ff ff jmp 0xffffffffffffff89 17: f3 0f 1e fa endbr64 1b: eb 07 jmp 0x24 1d: 0f 00 2d 13 70 31 00 verw 0x317013(%rip) # 0x317037 24: f3 0f 1e fa endbr64 28: fb sti 29: f4 hlt 2a:* fa cli <-- trapping instruction 2b: c3 ret 2c: cc int3 2d: cc int3 2e: cc int3 2f: cc int3 30: cc int3 31: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 37: f3 0f 1e fa endbr64 3b: e9 d7 ff ff ff jmp 0x17 Code starting with the faulting instruction =========================================== 0: fa cli 1: c3 ret 2: cc int3 3: cc int3 4: cc int3 5: cc int3 6: cc int3 7: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) d: f3 0f 1e fa endbr64 11: e9 d7 ff ff ff jmp 0xffffffffffffffed The kernel config and materials to reproduce are available at: https://download.01.org/0day-ci/archive/20240903/202409031302.dba16910-lkp@xxxxxxxxx -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki