linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rafael@kernel.org>
To: Christian Loehle <christian.loehle@arm.com>
Cc: linux-pm <linux-pm@vger.kernel.org>,
	 "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	 Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Subject: Re: [PATCH] Revert "intel_idle: Rescan "dead" SMT siblings during, initialization"
Date: Thu, 28 Aug 2025 18:13:26 +0200	[thread overview]
Message-ID: <CAJZ5v0h=OG-wgcZBD8mZ51+kb7j3yeDZQt9XfO=fdasLRgQkEg@mail.gmail.com> (raw)
In-Reply-To: <CAJZ5v0gGchbaQWRq39JbrX8chca7uefef763coJeup+vUOfyCw@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2350 bytes --]

On Thu, Aug 28, 2025 at 4:44 PM Rafael J. Wysocki <rafael@kernel.org> wrote:
>
> On Thu, Aug 28, 2025 at 4:26 PM Christian Loehle
> <christian.loehle@arm.com> wrote:
> >
> > This reverts commit a430c11f401589a0f4f57fd398271a5d85142c7a.
> >
> > Calling arch_cpu_rescan_dead_smt_siblings() in intel_idle_init with
> > boot parameter nosmt and maxcpus active hotplugged boot-offline CPUs
> > in (and leave them online) which weren't supposed to be online.
> >
> > With the revert and nosmt and maxcpus=12 on a raptor lake:
> > cpu     online  capacity
> > cpu0    1       1009
> > cpu1    0       -
> > cpu2    1       1009
> > cpu3    0       -
> > cpu4    1       1009
> > cpu5    0       -
> > cpu6    1       1009
> > cpu7    0       -
> > cpu8    1       1024
> > cpu9    0       -
> > cpu10   1       1024
> > cpu11   0       -
> > cpu12   1       1009
> > cpu13   0       -
> > cpu14   1       1009
> > cpu15   0       -
> > cpu16   1       623
> > cpu17   1       623
> > cpu18   1       623
> > cpu19   1       623
> > cpu20   0       -
> > cpu21   0       -
> > cpu22   0       -
> > cpu23   0       -
> >
> > Previously:
> > cpu     online  capacity
> > cpu0    1       1009
> > cpu1    0       -
> > cpu2    1       1009
> > cpu3    0       -
> > cpu4    1       1009
> > cpu5    0       -
> > cpu6    1       1009
> > cpu7    0       -
> > cpu8    1       1024
> > cpu9    0       -
> > cpu10   1       1024
> > cpu11   0       -
> > cpu12   1       1009
> > cpu13   0       -
> > cpu14   1       1009
> > cpu15   0       -
> > cpu16   1       623
> > cpu17   1       623
> > cpu18   1       623
> > cpu19   1       623
> > cpu20   1       623
> > cpu21   1       623
> > cpu22   1       623
> > cpu23   1       623
> >
> > Signed-off-by: Christian Loehle <christian.loehle@arm.com>
> > ---
> > Rafael, I don't immediately see how to fix this properly so I won't
> > try to, feel free to treat this as a bug report.
>
> Sure, thanks for reporting this!
>
> Well, I think that cpuhp_smt_enable() is missing a check.  It looks to
> me like it should do the topology_is_primary_thread(cpu) check like
> cpuhp_smt_disable().
>
> I'll cut a test patch for this later.

Something like the attached one, perhaps.  I haven't tested it yet,
but I'll do that later.

[-- Attachment #2: kernel-cpu-enable-smt.patch --]
[-- Type: text/x-patch, Size: 505 bytes --]

---
 kernel/cpu.c |    7 +++++++
 1 file changed, 7 insertions(+)

--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -2710,6 +2710,13 @@
 	cpu_maps_update_begin();
 	cpu_smt_control = CPU_SMT_ENABLED;
 	for_each_present_cpu(cpu) {
+		/*
+		 * Avoid accidentally onlining primary thread CPUs that have
+		 * been taken offline.
+		 */
+		if (topology_is_primary_thread(cpu))
+			continue;
+
 		/* Skip online CPUs and CPUs on offline nodes */
 		if (cpu_online(cpu) || !node_online(cpu_to_node(cpu)))
 			continue;

  reply	other threads:[~2025-08-28 16:13 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-28 14:25 [PATCH] Revert "intel_idle: Rescan "dead" SMT siblings during, initialization" Christian Loehle
2025-08-28 14:44 ` Rafael J. Wysocki
2025-08-28 16:13   ` Rafael J. Wysocki [this message]
2025-08-28 19:06     ` Rafael J. Wysocki
2025-08-28 21:44       ` Christian Loehle
2025-08-29 17:49         ` Rafael J. Wysocki

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='CAJZ5v0h=OG-wgcZBD8mZ51+kb7j3yeDZQt9XfO=fdasLRgQkEg@mail.gmail.com' \
    --to=rafael@kernel.org \
    --cc=artem.bityutskiy@linux.intel.com \
    --cc=christian.loehle@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@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 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 NNTP newsgroup(s).