[vbabka:slub-percpu-sheaves-v1r3] [mm, slub] a785bd6928: WARNING:inconsistent_lock_state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Hello,

kernel test robot noticed "WARNING:inconsistent_lock_state" on:

commit: a785bd692830a550059b5a7d45c29a1411fa6f03 ("mm, slub: cheaper locking for percpu sheaves")
https://git.kernel.org/cgit/linux/kernel/git/vbabka/linux.git slub-percpu-sheaves-v1r3

in testcase: boot

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)


+-------------------------------------------------+------------+------------+
|                                                 | 07f91c64db | a785bd6928 |
+-------------------------------------------------+------------+------------+
| WARNING:inconsistent_lock_state                 | 0          | 6          |
| inconsistent{SOFTIRQ-ON-W}->{IN-SOFTIRQ-W}usage | 0          | 6          |
+-------------------------------------------------+------------+------------+


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/202409042217.1a3005e-oliver.sang@xxxxxxxxx


[    1.603339][    C0] WARNING: inconsistent lock state
[    1.603854][    C0] 6.10.0-rc1-00013-ga785bd692830 #1 Not tainted
[    1.604494][    C0] --------------------------------
[    1.605033][    C0] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
[    1.605514][    C0] swapper/1 [HC0[0]:SC1[1]:HE1:SE0] takes:
[ 1.605514][ C0] eaf78664 (&pcs->lock.llock){+.?.}-{2:2}, at: kfree (arch/x86/include/asm/preempt.h:79 mm/slub.c:5013 mm/slub.c:5411 mm/slub.c:5558) 
[    1.605514][    C0] {SOFTIRQ-ON-W} state was registered at:
[ 1.605514][ C0] __lock_acquire (kernel/locking/lockdep.c:5091) 
[ 1.605514][ C0] lock_acquire (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5756 kernel/locking/lockdep.c:5719) 
[ 1.605514][ C0] kmem_cache_alloc_node_noprof (include/linux/local_lock_internal.h:30 mm/slub.c:4449 mm/slub.c:4638 mm/slub.c:4696) 
[ 1.605514][ C0] alloc_vmap_area (mm/vmalloc.c:1985) 
[ 1.605514][ C0] __get_vm_area_node+0x8e/0xf8 
[ 1.605514][ C0] get_vm_area_caller (mm/vmalloc.c:3155) 
[ 1.605514][ C0] __ioremap_caller+0x1c0/0x2b4 
[ 1.605514][ C0] ioremap_cache (arch/x86/mm/ioremap.c:438) 
[ 1.605514][ C0] acpi_os_map_iomem (drivers/acpi/osl.c:296 drivers/acpi/osl.c:355) 
[ 1.605514][ C0] acpi_os_map_memory (drivers/acpi/osl.c:379) 
[ 1.605514][ C0] acpi_tb_acquire_table (drivers/acpi/acpica/tbdata.c:158) 
[ 1.605514][ C0] acpi_tb_verify_temp_table (drivers/acpi/acpica/tbdata.c:320 drivers/acpi/acpica/tbdata.c:308 drivers/acpi/acpica/tbdata.c:400 drivers/acpi/acpica/tbdata.c:504) 
[ 1.605514][ C0] acpi_reallocate_root_table (drivers/acpi/acpica/tbxface.c:182) 
[ 1.605514][ C0] acpi_early_init (drivers/acpi/bus.c:1257) 
[ 1.605514][ C0] start_kernel (init/main.c:1064) 
[ 1.605514][ C0] i386_start_kernel (??:?) 
[ 1.605514][ C0] startup_32_smp (arch/x86/kernel/head_32.S:292) 
[    1.605514][    C0] irq event stamp: 190
[ 1.605514][ C0] hardirqs last enabled at (190): rcu_process_callbacks (arch/x86/include/asm/irqflags.h:26 (discriminator 1) arch/x86/include/asm/irqflags.h:67 (discriminator 1) arch/x86/include/asm/irqflags.h:127 (discriminator 1) kernel/rcu/tiny.c:126 (discriminator 1)) 
[ 1.605514][ C0] hardirqs last disabled at (189): rcu_process_callbacks (kernel/rcu/tiny.c:115 (discriminator 1)) 
[ 1.605514][ C0] softirqs last enabled at (0): copy_process (kernel/fork.c:2336) 
[ 1.605514][ C0] softirqs last disabled at (187): __do_softirq (kernel/softirq.c:589) 
[    1.605514][    C0]
[    1.605514][    C0] other info that might help us debug this:
[    1.605514][    C0]  Possible unsafe locking scenario:
[    1.605514][    C0]
[    1.605514][    C0]        CPU0
[    1.605514][    C0]        ----
[    1.605514][    C0]   lock(&pcs->lock.llock);
[    1.605514][    C0]   <Interrupt>
[    1.605514][    C0]     lock(&pcs->lock.llock);
[    1.605514][    C0]
[    1.605514][    C0]  *** DEADLOCK ***
[    1.605514][    C0]
[    1.605514][    C0] 1 lock held by swapper/1:
[ 1.605514][ C0] #0: da2faddc (rcu_callback){....}-{0:0}, at: rcu_process_callbacks (kernel/rcu/tiny.c:130) 
[    1.605514][    C0]
[    1.605514][    C0] stack backtrace:
[    1.605514][    C0] CPU: 0 PID: 1 Comm: swapper Not tainted 6.10.0-rc1-00013-ga785bd692830 #1 d4ae42ad2625ef0b26b1eff40697d310314756c0
[    1.605514][    C0] Call Trace:
[    1.605514][    C0]  <SOFTIRQ>
[ 1.605514][ C0] dump_stack_lvl (arch/x86/include/asm/irqflags.h:26 arch/x86/include/asm/irqflags.h:67 arch/x86/include/asm/irqflags.h:127 lib/dump_stack.c:117) 
[ 1.605514][ C0] dump_stack (lib/dump_stack.c:124) 
[ 1.605514][ C0] print_usage_bug+0x1ff/0x2d8 
[ 1.605514][ C0] mark_lock_irq (kernel/locking/lockdep.c:3971 kernel/locking/lockdep.c:4013 kernel/locking/lockdep.c:4216) 
[ 1.605514][ C0] mark_lock (kernel/locking/lockdep.c:4678) 
[ 1.605514][ C0] mark_usage (kernel/locking/lockdep.c:4567) 
[ 1.605514][ C0] __lock_acquire (kernel/locking/lockdep.c:5091) 
[ 1.605514][ C0] lock_acquire (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5756 kernel/locking/lockdep.c:5719) 
[ 1.605514][ C0] ? kfree (arch/x86/include/asm/preempt.h:79 mm/slub.c:5013 mm/slub.c:5411 mm/slub.c:5558) 
[ 1.605514][ C0] ? lock_acquire (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5756 kernel/locking/lockdep.c:5719) 
[ 1.605514][ C0] ? rcu_process_callbacks (kernel/rcu/tiny.c:130) 
[ 1.605514][ C0] kfree (include/linux/local_lock_internal.h:30 mm/slub.c:5013 mm/slub.c:5411 mm/slub.c:5558) 
[ 1.605514][ C0] ? kfree (arch/x86/include/asm/preempt.h:79 mm/slub.c:5013 mm/slub.c:5411 mm/slub.c:5558) 
[ 1.605514][ C0] ? kvfree (mm/util.c:681) 
[ 1.605514][ C0] kvfree (mm/util.c:681) 
[ 1.605514][ C0] rcu_process_callbacks (include/linux/rcupdate.h:339 kernel/rcu/tiny.c:94 kernel/rcu/tiny.c:133) 
[ 1.605514][ C0] handle_softirqs (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/jump_label.h:261 include/linux/jump_label.h:273 include/trace/events/irq.h:142 kernel/softirq.c:555) 
[ 1.605514][ C0] ? __lock_text_end (kernel/softirq.c:587) 
[ 1.605514][ C0] __do_softirq (kernel/softirq.c:589) 
[ 1.605514][ C0] call_on_stack (arch/x86/kernel/irq_32.c:57) 
[    1.605514][    C0]  </SOFTIRQ>
[ 1.605514][ C0] ? irq_exit_rcu (kernel/softirq.c:647) 
[ 1.605514][ C0] ? sysvec_irq_work (arch/x86/kernel/irq_work.c:17) 
[ 1.605514][ C0] ? handle_exception (arch/x86/entry/entry_32.S:1054) 
[ 1.605514][ C0] ? __refill_cfs_bandwidth_runtime (kernel/sched/fair.c:5600) 
[ 1.605514][ C0] ? exc_nmi (arch/x86/kernel/irq_work.c:17) 
[ 1.605514][ C0] ? default_send_IPI_self (arch/x86/kernel/apic/ipi.c:248) 
[ 1.605514][ C0] ? exc_nmi (arch/x86/kernel/irq_work.c:17) 
[ 1.605514][ C0] ? default_send_IPI_self (arch/x86/kernel/apic/ipi.c:248) 
[ 1.605514][ C0] ? arch_irq_work_raise (arch/x86/include/asm/apic.h:465 arch/x86/kernel/irq_work.c:32) 
[ 1.605514][ C0] ? irq_work_queue (kernel/irq_work.c:85 kernel/irq_work.c:112 kernel/irq_work.c:124 kernel/irq_work.c:116) 
[ 1.605514][ C0] ? call_rcu_tasks_generic (kernel/rcu/tasks.h:383) 
[ 1.605514][ C0] ? call_rcu_tasks (kernel/rcu/tasks.h:1113) 
[ 1.605514][ C0] ? __wait_rcu_gp (kernel/rcu/update.c:430) 
[ 1.605514][ C0] ? console_unlock (kernel/printk/printk.c:3082) 
[ 1.605514][ C0] ? rest_init (init/main.c:1459) 
[ 1.605514][ C0] ? synchronize_rcu_tasks_generic (kernel/rcu/tasks.h:645) 
[ 1.605514][ C0] ? call_rcu_tasks_generic (kernel/rcu/tasks.h:1111) 
[ 1.605514][ C0] ? rcu_tasks_pregp_step (kernel/rcu/update.c:403) 
[ 1.605514][ C0] ? rcu_init_tasks_generic (kernel/rcu/tasks.h:1112 kernel/rcu/tasks.h:2100 kernel/rcu/tasks.h:2207) 
[ 1.605514][ C0] ? kernel_init_freeable (arch/x86/include/asm/atomic.h:23 include/linux/atomic/atomic-arch-fallback.h:457 include/linux/jump_label.h:261 include/linux/jump_label.h:273 include/trace/events/initcall.h:10 init/main.c:1371 init/main.c:1567) 
[ 1.605514][ C0] ? kernel_init (init/main.c:1469) 
[ 1.605514][ C0] ? ret_from_fork (arch/x86/kernel/process.c:153) 
[ 1.605514][ C0] ? rest_init (init/main.c:1459) 
[ 1.605514][ C0] ? ret_from_fork_asm (arch/x86/entry/entry_32.S:737) 
[ 1.605514][ C0] ? entry_INT80_32 (arch/x86/entry/entry_32.S:944) 
[    1.605552][    T1] Running RCU Tasks Rude wait API self tests
[    1.606243][    T1] Running RCU Tasks Trace wait API self tests
[    1.606879][    T1] Performance Events: unsupported p6 CPU model 42 no PMU driver, software events only.
[    1.609554][    T1] signal: max sigframe size: 1760
[    1.610998][    T1] devtmpfs: initialized
[    1.615226][    T1] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    1.616356][    T1] futex hash table entries: 256 (order: 1, 12288 bytes, linear)


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20240904/202409042217.1a3005e-oliver.sang@xxxxxxxxx



-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux