lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ