public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] cpu: Add missing check to cpuhp_smt_enable()
@ 2025-08-29 20:01 Rafael J. Wysocki
  2025-09-02 15:05 ` Rafael J. Wysocki
  2025-09-05  7:39 ` Thomas Gleixner
  0 siblings, 2 replies; 16+ messages in thread
From: Rafael J. Wysocki @ 2025-08-29 20:01 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: LKML, Linux PM, Peter Zijlstra, Christian Loehle, Dave Hansen

From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Christian has reported that commit a430c11f4015 ("intel_idle: Rescan
"dead" SMT siblings during initialization") broke the use case in
which both nosmt and maxcpus were added to the kernel command line
because it caused CPUs that were not SMT siblings to be brought
online during the intel_idle driver initialization in violation of the
maxcpus limit.

The underlying reason for this is a missing topology_is_primary_thread()
check in cpuhp_smt_enable() which causes that function to put online
more CPUs than just the SMT siblings that it is supposed to handle.

Add the missing check to address the issue.

Fixes: a430c11f4015 ("intel_idle: Rescan "dead" SMT siblings during initialization")
Fixes: f694481b1d31 ("ACPI: processor: Rescan "dead" SMT siblings during initialization")
Closes: https://lore.kernel.org/linux-pm/724616a2-6374-4ba3-8ce3-ea9c45e2ae3b@arm.com/
Reported-by: Christian Loehle <christian.loehle@arm.com>
Tested-by: Christian Loehle <christian.loehle@arm.com>
Cc: 6.16+ <stable@vger.kernel.org> # 6.16+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 kernel/cpu.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -2710,6 +2710,12 @@
 	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;




^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2025-09-22 15:42 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-29 20:01 [PATCH v1] cpu: Add missing check to cpuhp_smt_enable() Rafael J. Wysocki
2025-09-02 15:05 ` Rafael J. Wysocki
2025-09-02 16:56   ` Dave Hansen
2025-09-02 17:18     ` Rafael J. Wysocki
2025-09-03 18:00       ` Dave Hansen
2025-09-03 18:35         ` Rafael J. Wysocki
2025-09-05  7:39 ` Thomas Gleixner
2025-09-05 13:13   ` Rafael J. Wysocki
2025-09-05 13:27     ` Rafael J. Wysocki
2025-09-05 20:47       ` Thomas Gleixner
2025-09-05 20:56         ` Rafael J. Wysocki
2025-09-07 13:14           ` Thomas Gleixner
2025-09-11 10:31             ` Rafael J. Wysocki
2025-09-21  8:56               ` [PATCH] x86/topology: Implement topology_is_core_online() to address SMT regression Thomas Gleixner
2025-09-21 11:00                 ` Christian Loehle
2025-09-22 15:42                 ` Rafael J. Wysocki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox