hi, Paul,
for this commit, we reported "[paulmckrcu:dev.2025.08.14a] [rcu] 2ad3ef4260: WARNING:at_mm/slub.c:#free_large_kmalloc" in https://lore.kernel.org/all/202508221045.ecc6098e-...@intel.com/ in fact, for 2ad3ef4260, we also noticed issue about "WARNING:possible_circular_locking_dependency_detected" now for this newer version fe37e4521b, the "WARNING:at_mm/slub.c:#free_large_kmalloc" seems gone. we also noticed there are similar commits in even newer branches dev.2025.08.20a dev.2025.08.21a if "WARNING:possible_circular_locking_dependency_detected" is also fixed in them, please just ignore this report. thanks Hello, kernel test robot noticed "WARNING:possible_circular_locking_dependency_detected" on: commit: fe37e4521bc46a111cf9e8d2b0b862bfd2daa54d ("rcu: Re-implement RCU Tasks Trace in terms of SRCU-fast") https://github.com/paulmckrcu/linux dev.2025.08.19a in testcase: rcutorture version: with following parameters: runtime: 300s test: default torture_type: tasks-tracing config: x86_64-randconfig-121-20250821 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) 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.s...@intel.com> | Closes: https://lore.kernel.org/oe-lkp/202508251443.2337dadc-...@intel.com [ 157.064279][ T396] WARNING: possible circular locking dependency detected [ 157.064611][ T396] 6.17.0-rc1-00030-gfe37e4521bc4 #1 Not tainted [ 157.064911][ T396] ------------------------------------------------------ [ 157.065241][ T396] rcu_torture_rea/396 is trying to acquire lock: [ 157.065541][ T396] ffffffff878da730 (rcu_tasks_trace_srcu_struct.srcu_wq.lock){....}-{2:2}, at: swake_up_one (include/linux/list.h:373 kernel/sched/swait.c:26 kernel/sched/swait.c:53) [ 157.066067][ T396] [ 157.066067][ T396] but task is already holding lock: [ 157.066411][ T396] ffff88812ed552a8 (&p->pi_lock){-.-.}-{2:2}, at: rcutorture_one_extend (kernel/rcu/rcutorture.c:2139) rcutorture [ 157.066917][ T396] [ 157.066917][ T396] which lock already depends on the new lock. [ 157.066917][ T396] [ 157.067404][ T396] [ 157.067404][ T396] the existing dependency chain (in reverse order) is: [ 157.067825][ T396] [ 157.067825][ T396] -> #1 (&p->pi_lock){-.-.}-{2:2}: [ 157.068190][ T396] __lock_acquire (kernel/locking/lockdep.c:5237) [ 157.068438][ T396] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870) [ 157.068674][ T396] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:111 kernel/locking/spinlock.c:162) [ 157.068947][ T396] try_to_wake_up (include/linux/err.h:70 include/linux/spinlock.h:557 kernel/sched/core.c:4216) [ 157.069191][ T396] swake_up_one (include/linux/list.h:218 include/linux/list.h:287 kernel/sched/swait.c:31 kernel/sched/swait.c:53) [ 157.069425][ T396] __srcu_read_unlock (kernel/rcu/srcutiny.c:111) [ 157.069688][ T396] tasks_tracing_torture_read_unlock (include/linux/srcu.h:408 include/linux/rcupdate_trace.h:81 kernel/rcu/rcutorture.c:1112) rcutorture [ 157.070066][ T396] rcutorture_one_extend (kernel/rcu/rcutorture.c:2141) rcutorture [ 157.070399][ T396] rcu_torture_one_read_end (kernel/rcu/rcutorture.c:2357) rcutorture [ 157.070744][ T396] rcu_torture_one_read (kernel/rcu/rcutorture.c:2378) rcutorture [ 157.071073][ T396] rcu_torture_reader (kernel/rcu/rcutorture.c:2443) rcutorture [ 157.071393][ T396] kthread (kernel/kthread.c:463) [ 157.071614][ T396] ret_from_fork (arch/x86/kernel/process.c:154) [ 157.071858][ T396] ret_from_fork_asm (arch/x86/entry/entry_64.S:255) [ 157.072125][ T396] [ 157.072125][ T396] -> #0 (rcu_tasks_trace_srcu_struct.srcu_wq.lock){....}-{2:2}: [ 157.072584][ T396] check_prev_add (kernel/locking/lockdep.c:3166) [ 157.072827][ T396] validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908) [ 157.073074][ T396] __lock_acquire (kernel/locking/lockdep.c:5237) [ 157.073320][ T396] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870) [ 157.073557][ T396] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:111 kernel/locking/spinlock.c:162) [ 157.073827][ T396] swake_up_one (include/linux/list.h:373 kernel/sched/swait.c:26 kernel/sched/swait.c:53) [ 157.074063][ T396] __srcu_read_unlock (kernel/rcu/srcutiny.c:111) [ 157.074326][ T396] tasks_tracing_torture_read_unlock (include/linux/srcu.h:408 include/linux/rcupdate_trace.h:81 kernel/rcu/rcutorture.c:1112) rcutorture [ 157.074705][ T396] rcutorture_one_extend (kernel/rcu/rcutorture.c:2141) rcutorture [ 157.075038][ T396] rcu_torture_one_read_end (kernel/rcu/rcutorture.c:2357) rcutorture [ 157.075384][ T396] rcu_torture_one_read (kernel/rcu/rcutorture.c:2378) rcutorture [ 157.075711][ T396] rcu_torture_reader (kernel/rcu/rcutorture.c:2443) rcutorture [ 157.076040][ T396] kthread (kernel/kthread.c:463) [ 157.076261][ T396] ret_from_fork (arch/x86/kernel/process.c:154) [ 157.076504][ T396] ret_from_fork_asm (arch/x86/entry/entry_64.S:255) [ 157.076755][ T396] [ 157.076755][ T396] other info that might help us debug this: [ 157.076755][ T396] [ 157.077229][ T396] Possible unsafe locking scenario: [ 157.077229][ T396] [ 157.077577][ T396] CPU0 CPU1 [ 157.077829][ T396] ---- ---- [ 157.078080][ T396] lock(&p->pi_lock); [ 157.078276][ T396] lock(rcu_tasks_trace_srcu_struct.srcu_wq.lock); [ 157.078701][ T396] lock(&p->pi_lock); [ 157.079013][ T396] lock(rcu_tasks_trace_srcu_struct.srcu_wq.lock); [ 157.079324][ T396] [ 157.079324][ T396] *** DEADLOCK *** [ 157.079324][ T396] [ 157.079701][ T396] 1 lock held by rcu_torture_rea/396: [ 157.079953][ T396] #0: ffff88812ed552a8 (&p->pi_lock){-.-.}-{2:2}, at: rcutorture_one_extend (kernel/rcu/rcutorture.c:2139) rcutorture [ 157.080475][ T396] [ 157.080475][ T396] stack backtrace: [ 157.080753][ T396] CPU: 0 UID: 0 PID: 396 Comm: rcu_torture_rea Not tainted 6.17.0-rc1-00030-gfe37e4521bc4 #1 PREEMPT aa183fc6ef9598fc40ccb278d8e2f41f5324934b [ 157.081421][ T396] Call Trace: [ 157.081580][ T396] <TASK> [ 157.081722][ T396] dump_stack_lvl (lib/dump_stack.c:124) [ 157.081938][ T396] dump_stack (lib/dump_stack.c:130) [ 157.082136][ T396] print_circular_bug (kernel/locking/lockdep.c:2045) [ 157.082377][ T396] check_noncircular (kernel/locking/lockdep.c:2178) [ 157.082609][ T396] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 157.082835][ T396] check_prev_add (kernel/locking/lockdep.c:3166) [ 157.083055][ T396] ? finish_task_switch+0x1d7/0x770 [ 157.083331][ T396] validate_chain (kernel/locking/lockdep.c:3285 kernel/locking/lockdep.c:3908) [ 157.083557][ T396] __lock_acquire (kernel/locking/lockdep.c:5237) [ 157.083783][ T396] lock_acquire (kernel/locking/lockdep.c:470 kernel/locking/lockdep.c:5870) [ 157.084004][ T396] ? swake_up_one (include/linux/list.h:373 kernel/sched/swait.c:26 kernel/sched/swait.c:53) [ 157.084227][ T396] ? rcutorture_one_extend (kernel/rcu/rcutorture.c:2139) rcutorture [ 157.084712][ T396] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:111 kernel/locking/spinlock.c:162) [ 157.084960][ T396] ? swake_up_one (include/linux/list.h:373 kernel/sched/swait.c:26 kernel/sched/swait.c:53) [ 157.085181][ T396] swake_up_one (include/linux/list.h:373 kernel/sched/swait.c:26 kernel/sched/swait.c:53) [ 157.085396][ T396] __srcu_read_unlock (kernel/rcu/srcutiny.c:111) [ 157.085636][ T396] tasks_tracing_torture_read_unlock (include/linux/srcu.h:408 include/linux/rcupdate_trace.h:81 kernel/rcu/rcutorture.c:1112) rcutorture [ 157.086150][ T396] rcutorture_one_extend (kernel/rcu/rcutorture.c:2141) rcutorture [ 157.086621][ T396] ? rcu_read_delay (kernel/rcu/rcutorture.c:487 (discriminator 1)) rcutorture [ 157.087077][ T396] rcu_torture_one_read_end (kernel/rcu/rcutorture.c:2357) rcutorture [ 157.087563][ T396] rcu_torture_one_read (kernel/rcu/rcutorture.c:2378) rcutorture [ 157.088038][ T396] ? rcu_torture_one_read_end (kernel/rcu/rcutorture.c:2378) rcutorture [ 157.088551][ T396] ? ktime_get (arch/x86/include/asm/irqflags.h:42 arch/x86/include/asm/irqflags.h:119 arch/x86/include/asm/irqflags.h:159 include/linux/seqlock.h:74 kernel/time/timekeeping.c:818) [ 157.088765][ T396] ? ktime_get (kernel/time/timekeeping.c:822) [ 157.088977][ T396] ? __kasan_check_read (mm/kasan/shadow.c:32) [ 157.089217][ T396] ? kthread_should_stop (arch/x86/include/asm/bitops.h:206 arch/x86/include/asm/bitops.h:238 include/asm-generic/bitops/instrumented-non-atomic.h:142 kernel/kthread.c:168) [ 157.089465][ T396] rcu_torture_reader (kernel/rcu/rcutorture.c:2443) rcutorture [ 157.089923][ T396] ? find_held_lock (kernel/locking/lockdep.c:5350) [ 157.090149][ T396] ? rcu_torture_one_read (kernel/rcu/rcutorture.c:2426) rcutorture [ 157.090623][ T396] ? _raw_spin_unlock_irqrestore (include/linux/spinlock_api_smp.h:151 kernel/locking/spinlock.c:194) [ 157.090898][ T396] ? __kthread_parkme (include/linux/instrumented.h:68 (discriminator 11) include/asm-generic/bitops/instrumented-non-atomic.h:141 (discriminator 11) kernel/kthread.c:290 (discriminator 11)) [ 157.091133][ T396] ? __this_cpu_preempt_check (lib/smp_processor_id.c:65) [ 157.091397][ T396] ? rcu_torture_reader (kernel/rcu/rcutorture.c:2405) rcutorture [ 157.091865][ T396] ? __kthread_parkme (arch/x86/include/asm/current.h:25 kernel/kthread.c:303) The kernel config and materials to reproduce are available at: https://download.01.org/0day-ci/archive/20250825/202508251443.2337dadc-...@intel.com -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki