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


Reply via email to