From: kernel test robot <oliver.sang@intel.com>
To: "Paul E. McKenney" <paulmck@kernel.org>
Cc: <oe-lkp@lists.linux.dev>, <lkp@intel.com>,
Linux Memory Management List <linux-mm@kvack.org>,
Uladzislau Rezki <urezki@gmail.com>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>,
"David S. Miller" <davem@davemloft.net>,
Yan Zhai <yan@cloudflare.com>, <rcu@vger.kernel.org>,
<oliver.sang@intel.com>
Subject: [linux-next:master] [rcu] 3183059ad8: kernel/rcu/tree.c:#Illegal_rcu_softirq_qs()in_RCU_read-side_critical_section
Date: Tue, 16 Apr 2024 14:40:16 +0800 [thread overview]
Message-ID: <202404161239.4aa01f2-lkp@intel.com> (raw)
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@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202404161239.4aa01f2-lkp@intel.com
[ 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@intel.com
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2024-04-16 6:40 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202404161239.4aa01f2-lkp@intel.com \
--to=oliver.sang@intel.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kuba@kernel.org \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=oe-lkp@lists.linux.dev \
--cc=paulmck@kernel.org \
--cc=rcu@vger.kernel.org \
--cc=urezki@gmail.com \
--cc=yan@cloudflare.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).