Re: [PATCH v2] block: restore default wbt enablement

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

 




Hello,

kernel test robot noticed "WARNING:possible_circular_locking_dependency_detected" on:

commit: 555859c514d9b8ca62ca2f1553bf6291ceee1e3a ("[PATCH v2] block: restore default wbt enablement")
url: https://github.com/intel-lab-lkp/linux/commits/Julian-Sun/block-restore-default-wbt-enablement/20250812-234518
base: https://git.kernel.org/cgit/linux/kernel/git/axboe/linux-block.git for-next
patch link: https://lore.kernel.org/all/20250812154257.57540-1-sunjunchao@xxxxxxxxxxxxx/
patch subject: [PATCH v2] block: restore default wbt enablement

in testcase: boot

config: i386-randconfig-012-20250813
compiler: gcc-12
test machine: qemu-system-i386 -enable-kvm -cpu SandyBridge -smp 2 -m 4G

(please refer to attached dmesg/kmsg for entire log/backtrace)



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/202508140947.5235b2c7-lkp@xxxxxxxxx


[    1.575968][    T1] WARNING: possible circular locking dependency detected
[    1.575968][    T1] 6.17.0-rc1-00012-g555859c514d9 #1 Tainted: G                T
[    1.575968][    T1] ------------------------------------------------------
[    1.575968][    T1] swapper/0/1 is trying to acquire lock:
[ 1.575968][ T1] 420f00b4 (cpu_hotplug_lock){++++}-{0:0}, at: static_key_slow_inc (kernel/jump_label.c:191) 
[    1.575968][    T1]
[    1.575968][    T1] but task is already holding lock:
[ 1.575968][ T1] 46342678 (&q->q_usage_counter(io)#9){++++}-{0:0}, at: blk_mq_freeze_queue_nomemsave (block/blk-mq.c:206) 
[    1.575968][    T1]
[    1.575968][    T1] which lock already depends on the new lock.
[    1.575968][    T1]
[    1.575968][    T1] the existing dependency chain (in reverse order) is:
[    1.575968][    T1]
[    1.575968][    T1] -> #2 (&q->q_usage_counter(io)#9){++++}-{0:0}:
[    1.575968][    T1]
[    1.575968][    T1] -> #1 (fs_reclaim){+.+.}-{0:0}:
[    1.575968][    T1]
[    1.575968][    T1] -> #0 (cpu_hotplug_lock){++++}-{0:0}:
[    1.575968][    T1]
[    1.575968][    T1] other info that might help us debug this:
[    1.575968][    T1]
[    1.575968][    T1] Chain exists of:
[    1.575968][    T1]   cpu_hotplug_lock --> fs_reclaim --> &q->q_usage_counter(io)#9
[    1.575968][    T1]
[    1.575968][    T1]  Possible unsafe locking scenario:
[    1.575968][    T1]
[    1.575968][    T1]        CPU0                    CPU1
[    1.575968][    T1]        ----                    ----
[    1.575968][    T1]   lock(&q->q_usage_counter(io)#9);
[    1.575968][    T1]                                lock(fs_reclaim);
[    1.575968][    T1]                                lock(&q->q_usage_counter(io)#9);
[    1.575968][    T1]   rlock(cpu_hotplug_lock);
[    1.575968][    T1]
[    1.575968][    T1]  *** DEADLOCK ***
[    1.575968][    T1]
[    1.575968][    T1] 5 locks held by swapper/0/1:
[ 1.575968][ T1] #0: 43d11208 (&set->update_nr_hwq_lock){.+.+}-{4:4}, at: add_disk_fwnode (block/genhd.c:597) 
[ 1.575968][ T1] #1: 463429c8 (&q->sysfs_lock){+.+.}-{4:4}, at: blk_register_queue (block/blk-sysfs.c:889) 
[ 1.575968][ T1] #2: 463427e0 (&q->rq_qos_mutex){+.+.}-{4:4}, at: wbt_init (block/blk-wbt.c:925) 
[ 1.575968][ T1] #3: 46342678 (&q->q_usage_counter(io)#9){++++}-{0:0}, at: blk_mq_freeze_queue_nomemsave (block/blk-mq.c:206) 
[ 1.575968][ T1] #4: 46342694 (&q->q_usage_counter(queue)){+.+.}-{0:0}, at: blk_mq_freeze_queue_nomemsave (block/blk-mq.c:206) 
[    1.575968][    T1]
[    1.575968][    T1] stack backtrace:
[    1.575968][    T1] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Tainted: G                T   6.17.0-rc1-00012-g555859c514d9 #1 PREEMPT(none)
[    1.575968][    T1] Tainted: [T]=RANDSTRUCT
[    1.575968][    T1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
[    1.575968][    T1] Call Trace:
[ 1.575968][ T1] ? dump_stack_lvl (lib/dump_stack.c:123) 
[ 1.575968][ T1] ? dump_stack (lib/dump_stack.c:130) 
[ 1.575968][ T1] ? print_circular_bug (kernel/locking/lockdep.c:2045) 
[ 1.575968][ T1] ? check_noncircular (kernel/locking/lockdep.c:2175) 
[ 1.575968][ T1] ? check_prev_add (kernel/locking/lockdep.c:3166) 
[ 1.575968][ T1] ? validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908) 
[ 1.575968][ T1] ? __lock_acquire (kernel/locking/lockdep.c:5237) 
[ 1.575968][ T1] ? lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870 kernel/locking/lockdep.c:5825) 
[ 1.575968][ T1] ? static_key_slow_inc (kernel/jump_label.c:191) 
[ 1.575968][ T1] ? cpus_read_lock (arch/x86/include/asm/preempt.h:80 include/linux/percpu-rwsem.h:55 include/linux/percpu-rwsem.h:77 kernel/cpu.c:491) 
[ 1.575968][ T1] ? static_key_slow_inc (kernel/jump_label.c:191) 
[ 1.575968][ T1] ? rq_qos_add (include/linux/blk-mq.h:940 block/blk-rq-qos.c:351) 
[ 1.575968][ T1] ? wbt_init (block/blk-wbt.c:925) 
[ 1.575968][ T1] ? wbt_enable_default (block/blk-wbt.c:728) 
[ 1.575968][ T1] ? blk_register_queue (block/blk-sysfs.c:910) 
[ 1.575968][ T1] ? __add_disk (block/genhd.c:528) 
[ 1.575968][ T1] ? add_disk_fwnode (block/genhd.c:597) 
[ 1.575968][ T1] ? device_add_disk (block/genhd.c:628) 
[ 1.575968][ T1] ? loop_add (drivers/block/loop.c:2078 (discriminator 3)) 
[ 1.575968][ T1] ? __lock_acquire (kernel/locking/lockdep.c:5237) 
[ 1.575968][ T1] ? loop_init (drivers/block/loop.c:2268 (discriminator 3)) 
[ 1.575968][ T1] ? max_loop_setup (drivers/block/loop.c:2228) 
[ 1.575968][ T1] ? do_one_initcall (init/main.c:1269) 
[ 1.575968][ T1] ? do_initcalls (init/main.c:1330 init/main.c:1347) 
[ 1.575968][ T1] ? kernel_init_freeable (init/main.c:1583) 
[ 1.575968][ T1] ? rest_init (init/main.c:1461) 
[ 1.575968][ T1] ? kernel_init (init/main.c:1471) 
[ 1.575968][ T1] ? ret_from_fork (arch/x86/kernel/process.c:154) 
[ 1.575968][ T1] ? rest_init (init/main.c:1461) 
[ 1.575968][ T1] ? ret_from_fork_asm (arch/x86/entry/entry_32.S:737) 
[ 1.575968][ T1] ? entry_INT80_32 (arch/x86/entry/entry_32.S:945) 


The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20250814/202508140947.5235b2c7-lkp@xxxxxxxxx



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





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux