[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202508251443.2337dadc-lkp@intel.com>
Date: Mon, 25 Aug 2025 14:57:05 +0800
From: kernel test robot <oliver.sang@...el.com>
To: "Paul E. McKenney" <paulmck@...nel.org>
CC: <oe-lkp@...ts.linux.dev>, <lkp@...el.com>, Andrii Nakryiko
<andrii@...nel.org>, Alexei Starovoitov <ast@...nel.org>, Peter Zijlstra
<peterz@...radead.org>, <rcu@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <oliver.sang@...el.com>
Subject: [paulmckrcu:dev.2025.08.19a] [rcu] fe37e4521b:
WARNING:possible_circular_locking_dependency_detected
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-lkp@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.sang@...el.com>
| Closes: https://lore.kernel.org/oe-lkp/202508251443.2337dadc-lkp@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-lkp@intel.com
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists