From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Qian Cai <cai@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
"Paul E. McKenney" <paulmck@kernel.org>,
Joel Fernandes <joel@joelfernandes.org>
Subject: [PATCH 5.10 01/15] x86/smpboot: Move rcu_cpu_starting() earlier
Date: Thu, 15 Dec 2022 19:10:28 +0100 [thread overview]
Message-ID: <20221215172906.700842253@linuxfoundation.org> (raw)
In-Reply-To: <20221215172906.638553794@linuxfoundation.org>
From: Paul E. McKenney <paulmck@kernel.org>
commit 29368e09392123800e5e2bf0f3eda91f16972e52 upstream.
The call to rcu_cpu_starting() in mtrr_ap_init() is not early enough
in the CPU-hotplug onlining process, which results in lockdep splats
as follows:
=============================
WARNING: suspicious RCU usage
5.9.0+ #268 Not tainted
-----------------------------
kernel/kprobes.c:300 RCU-list traversed in non-reader section!!
other info that might help us debug this:
RCU used illegally from offline CPU!
rcu_scheduler_active = 1, debug_locks = 1
no locks held by swapper/1/0.
stack backtrace:
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.9.0+ #268
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.10.2-1ubuntu1 04/01/2014
Call Trace:
dump_stack+0x77/0x97
__is_insn_slot_addr+0x15d/0x170
kernel_text_address+0xba/0xe0
? get_stack_info+0x22/0xa0
__kernel_text_address+0x9/0x30
show_trace_log_lvl+0x17d/0x380
? dump_stack+0x77/0x97
dump_stack+0x77/0x97
__lock_acquire+0xdf7/0x1bf0
lock_acquire+0x258/0x3d0
? vprintk_emit+0x6d/0x2c0
_raw_spin_lock+0x27/0x40
? vprintk_emit+0x6d/0x2c0
vprintk_emit+0x6d/0x2c0
printk+0x4d/0x69
start_secondary+0x1c/0x100
secondary_startup_64_no_verify+0xb8/0xbb
This is avoided by moving the call to rcu_cpu_starting up near
the beginning of the start_secondary() function. Note that the
raw_smp_processor_id() is required in order to avoid calling into lockdep
before RCU has declared the CPU to be watched for readers.
Link: https://lore.kernel.org/lkml/160223032121.7002.1269740091547117869.tip-bot2@tip-bot2/
Reported-by: Qian Cai <cai@redhat.com>
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Joel Fernandes <joel@joelfernandes.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/kernel/cpu/mtrr/mtrr.c | 2 --
arch/x86/kernel/smpboot.c | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
--- a/arch/x86/kernel/cpu/mtrr/mtrr.c
+++ b/arch/x86/kernel/cpu/mtrr/mtrr.c
@@ -794,8 +794,6 @@ void mtrr_ap_init(void)
if (!use_intel() || mtrr_aps_delayed_init)
return;
- rcu_cpu_starting(smp_processor_id());
-
/*
* Ideally we should hold mtrr_mutex here to avoid mtrr entries
* changed, but this routine will be called in cpu boot time,
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -229,6 +229,7 @@ static void notrace start_secondary(void
#endif
cpu_init_exception_handling();
cpu_init();
+ rcu_cpu_starting(raw_smp_processor_id());
x86_cpuinit.early_percpu_clock_init();
smp_callin();
next prev parent reply other threads:[~2022-12-15 18:11 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-15 18:10 [PATCH 5.10 00/15] 5.10.160-rc1 review Greg Kroah-Hartman
2022-12-15 18:10 ` Greg Kroah-Hartman [this message]
2022-12-15 18:10 ` [PATCH 5.10 02/15] vfs: fix copy_file_range() regression in cross-fs copies Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 03/15] vfs: fix copy_file_range() averts filesystem freeze protection Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 04/15] nfp: fix use-after-free in area_cache_get() Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 05/15] fuse: always revalidate if exclusive create Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 06/15] io_uring: add missing item types for splice request Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 07/15] ASoC: fsl_micfil: explicitly clear software reset bit Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 08/15] ASoC: fsl_micfil: explicitly clear CHnF flags Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 09/15] ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx() Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 10/15] libbpf: Use page size as max_entries when probing ring buffer map Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 11/15] pinctrl: meditatek: Startup with the IRQs disabled Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 12/15] can: sja1000: fix size of OCR_MODE_MASK define Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 13/15] can: mcba_usb: Fix termination command argument Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 14/15] ASoC: cs42l51: Correct PGA Volume minimum value Greg Kroah-Hartman
2022-12-15 18:10 ` [PATCH 5.10 15/15] nvme-pci: clear the prp2 field when not used Greg Kroah-Hartman
2022-12-15 21:40 ` [PATCH 5.10 00/15] 5.10.160-rc1 review Pavel Machek
2022-12-15 23:50 ` Shuah Khan
2022-12-16 10:02 ` Rudi Heitbaum
2022-12-16 10:21 ` Allen Pais
2022-12-16 11:27 ` Naresh Kamboju
2022-12-16 13:04 ` Jon Hunter
2022-12-16 13:12 ` Sudip Mukherjee (Codethink)
2022-12-16 19:29 ` Florian Fainelli
2022-12-16 21:30 ` Guenter Roeck
2022-12-18 7:06 ` zhouzhixiu
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=20221215172906.700842253@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=cai@redhat.com \
--cc=joel@joelfernandes.org \
--cc=patches@lists.linux.dev \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=stable@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.