[linux-next:master] [rcu] 3183059ad8: kernel/rcu/tree.c:#Illegal_rcu_softirq_qs()in_RCU_read-side_critical_section

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

 




Hello,

kernel test robot noticed "kernel/rcu/tree.c:#Illegal_rcu_softirq_qs()in_RCU_read-side_critical_section" on:

commit: 3183059ad82a0daa8292daf43c325bac57daceb5 ("rcu: Add lockdep checks and kernel-doc header to rcu_softirq_qs()")
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git master

[test failed on linux-next/master 6bd343537461b57f3efe5dfc5fc193a232dfef1e]

in testcase: trinity
version: 
with following parameters:

	runtime: 300s
	group: group-03
	nr_groups: 5



compiler: gcc-13
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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-lkp/202404161239.4aa01f2-lkp@xxxxxxxxx


[  293.025781][    C0] WARNING: suspicious RCU usage
[  293.026196][    C0] 6.9.0-rc2-00001-g3183059ad82a #1 Tainted: G        W
[  293.026856][    C0] -----------------------------
[  293.027278][    C0] kernel/rcu/tree.c:269 Illegal rcu_softirq_qs() in RCU read-side critical section!
[  293.028021][    C0]
[  293.028021][    C0] other info that might help us debug this:
[  293.028021][    C0]
[  293.028967][    C0]
[  293.028967][    C0] rcu_scheduler_active = 2, debug_locks = 1
[  293.029640][    C0] 1 lock held by ksoftirqd/0/14:
[ 293.030049][ C0] #0: ffffffff85ee8ba0 (rcu_read_lock_sched){....}-{1:2}, at: __virt_addr_valid (include/linux/rcupdate.h:329 (discriminator 1) include/linux/rcupdate.h:873 (discriminator 1) include/linux/mmzone.h:2019 (discriminator 1) arch/x86/mm/physaddr.c:65 (discriminator 1)) 
[  293.031027][    C0]
[  293.031027][    C0] stack backtrace:
[  293.031577][    C0] CPU: 0 PID: 14 Comm: ksoftirqd/0 Tainted: G        W          6.9.0-rc2-00001-g3183059ad82a #1
[  293.032489][    C0] Call Trace:
[  293.032778][    C0]  <IRQ>
[ 293.033025][ C0] dump_stack_lvl (lib/dump_stack.c:117) 
[ 293.033421][ C0] lockdep_rcu_suspicious (include/linux/context_tracking.h:153 kernel/locking/lockdep.c:6713) 
[ 293.033864][ C0] rcu_softirq_qs (kernel/rcu/tree.c:269 (discriminator 11)) 
[ 293.034273][ C0] __do_softirq (kernel/softirq.c:568) 
[ 293.034723][ C0] ? __lock_text_end (kernel/softirq.c:512) 
[ 293.035189][ C0] ? tick_handle_periodic (kernel/time/tick-common.c:131 (discriminator 1)) 
[ 293.035627][ C0] irq_exit_rcu (kernel/softirq.c:428 kernel/softirq.c:633 kernel/softirq.c:645) 
[ 293.035994][ C0] sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1043 (discriminator 47) arch/x86/kernel/apic/apic.c:1043 (discriminator 47)) 
[  293.036495][    C0]  </IRQ>
[  293.036811][    C0]  <TASK>
[ 293.037091][ C0] asm_sysvec_apic_timer_interrupt (arch/x86/include/asm/idtentry.h:702) 
[ 293.037626][ C0] RIP: 0010:lock_acquire (kernel/locking/lockdep.c:5722) 
[ 293.038107][ C0] Code: b8 ff ff ff ff 48 83 c4 28 65 0f c1 05 5a f4 c9 7e 83 f8 01 0f 85 8a 02 00 00 48 85 ed 74 01 fb 48 b8 00 00 00 00 00 fc ff df <48> 01 c3 48 c7 03 00 00 00 00 48 c7 43 08 00 00 00 00 48 8b 84 24
All code
========
   0:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
   5:	48 83 c4 28          	add    $0x28,%rsp
   9:	65 0f c1 05 5a f4 c9 	xadd   %eax,%gs:0x7ec9f45a(%rip)        # 0x7ec9f46b
  10:	7e 
  11:	83 f8 01             	cmp    $0x1,%eax
  14:	0f 85 8a 02 00 00    	jne    0x2a4
  1a:	48 85 ed             	test   %rbp,%rbp
  1d:	74 01                	je     0x20
  1f:	fb                   	sti
  20:	48 b8 00 00 00 00 00 	movabs $0xdffffc0000000000,%rax
  27:	fc ff df 
  2a:*	48 01 c3             	add    %rax,%rbx		<-- trapping instruction
  2d:	48 c7 03 00 00 00 00 	movq   $0x0,(%rbx)
  34:	48 c7 43 08 00 00 00 	movq   $0x0,0x8(%rbx)
  3b:	00 
  3c:	48                   	rex.W
  3d:	8b                   	.byte 0x8b
  3e:	84                   	.byte 0x84
  3f:	24                   	.byte 0x24

Code starting with the faulting instruction
===========================================
   0:	48 01 c3             	add    %rax,%rbx
   3:	48 c7 03 00 00 00 00 	movq   $0x0,(%rbx)
   a:	48 c7 43 08 00 00 00 	movq   $0x0,0x8(%rbx)
  11:	00 
  12:	48                   	rex.W
  13:	8b                   	.byte 0x8b
  14:	84                   	.byte 0x84
  15:	24                   	.byte 0x24
[  293.039747][    C0] RSP: 0018:ffff888106a6fb58 EFLAGS: 00000206
[  293.040272][    C0] RAX: dffffc0000000000 RBX: 1ffff11020d4df6d RCX: 0000000000000000
[  293.040938][    C0] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
[  293.041606][    C0] RBP: 0000000000000200 R08: 0000000000000000 R09: 0000000000000000
[  293.042327][    C0] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[  293.043046][    C0] R13: 0000000000000000 R14: ffffffff85ee8ba0 R15: 0000000000000000
[ 293.043775][ C0] ? lock_sync (kernel/locking/lockdep.c:5722) 
[ 293.044186][ C0] ? lock_acquire (kernel/locking/lockdep.c:467 (discriminator 4) kernel/locking/lockdep.c:5756 (discriminator 4)) 
[ 293.044620][ C0] ? remove_entity_load_avg (kernel/sched/fair.c:4808) 
[ 293.045079][ C0] ? find_held_lock (kernel/locking/lockdep.c:5244 (discriminator 1)) 
[ 293.045518][ C0] ? __lock_release+0x103/0x450 
[ 293.045998][ C0] ? finish_task_switch+0x5ce/0xae0 
[ 293.046465][ C0] ? lockdep_tasklist_lock_is_held (kernel/fork.c:345) 
[ 293.046974][ C0] __virt_addr_valid (include/linux/rcupdate.h:874 include/linux/mmzone.h:2019 arch/x86/mm/physaddr.c:65) 
[ 293.047391][ C0] ? __virt_addr_valid (include/linux/rcupdate.h:329 (discriminator 1) include/linux/rcupdate.h:873 (discriminator 1) include/linux/mmzone.h:2019 (discriminator 1) arch/x86/mm/physaddr.c:65 (discriminator 1)) 
[ 293.047829][ C0] kasan_addr_to_slab (mm/kasan/common.c:37 (discriminator 1)) 
[ 293.048247][ C0] __kasan_record_aux_stack (mm/kasan/generic.c:531 (discriminator 1)) 
[ 293.048738][ C0] __call_rcu_common+0x6b/0x6a0 
[ 293.049245][ C0] put_task_stack (kernel/fork.c:371 kernel/fork.c:571 kernel/fork.c:578) 
[ 293.049646][ C0] finish_task_switch+0x5d6/0xae0 
[ 293.050136][ C0] __schedule (kernel/sched/core.c:6617) 
[ 293.050531][ C0] ? io_schedule_timeout (kernel/sched/core.c:6617) 
[ 293.050975][ C0] ? reacquire_held_locks (kernel/locking/lockdep.c:5405) 
[ 293.051450][ C0] ? schedule (kernel/sched/core.c:6804 (discriminator 1) kernel/sched/core.c:6837 (discriminator 1)) 
[ 293.051820][ C0] schedule (arch/x86/include/asm/preempt.h:84 (discriminator 13) kernel/sched/core.c:6824 (discriminator 13) kernel/sched/core.c:6838 (discriminator 13)) 
[ 293.052184][ C0] smpboot_thread_fn (kernel/smpboot.c:160) 
[ 293.052638][ C0] ? schedule (arch/x86/include/asm/preempt.h:84 (discriminator 13) kernel/sched/core.c:6824 (discriminator 13) kernel/sched/core.c:6838 (discriminator 13)) 
[ 293.052993][ C0] ? sort_range (kernel/smpboot.c:107) 
[ 293.053361][ C0] kthread (kernel/kthread.c:388) 
[ 293.053744][ C0] ? kthread_complete_and_exit (kernel/kthread.c:341) 
[ 293.054220][ C0] ret_from_fork (arch/x86/kernel/process.c:153) 
[ 293.054592][ C0] ? kthread_complete_and_exit (kernel/kthread.c:341) 
[ 293.055091][ C0] ret_from_fork_asm (arch/x86/entry/entry_64.S:256) 
[  293.055556][    C0]  </TASK>


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



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





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux