The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Skip offline cores when enabling SMT on PowerPC
@ 2024-07-31  3:01 Nysal Jan K.A.
  2024-07-31  3:01 ` [PATCH v2 1/2] cpu/SMT: Enable SMT only if a core is online Nysal Jan K.A.
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Nysal Jan K.A. @ 2024-07-31  3:01 UTC (permalink / raw)
  To: Michael Ellerman, Thomas Gleixner
  Cc: Tyrel Datwyler, Michal Suchanek, Nysal Jan K.A, Nicholas Piggin,
	Christophe Leroy, Naveen N. Rao, Peter Zijlstra, Stephen Rothwell,
	Sourabh Jain, Dave Hansen, Pawan Gupta, Ard Biesheuvel,
	Eric DeVolder, Laurent Dufour, linux-kernel, linuxppc-dev

From: "Nysal Jan K.A" <nysal@linux.ibm.com>

After the addition of HOTPLUG_SMT support for PowerPC [1] there was a
regression reported [2] when enabling SMT. On a system with at least
one offline core, when enabling SMT, the expectation is that no CPUs
of offline cores are made online.

On a POWER9 system with 4 cores in SMT4 mode:
$ ppc64_cpu --info
Core   0:    0*    1*    2*    3*
Core   1:    4*    5*    6*    7*
Core   2:    8*    9*   10*   11*
Core   3:   12*   13*   14*   15*

Turn only one core on:
$ ppc64_cpu --cores-on=1
$ ppc64_cpu --info
Core   0:    0*    1*    2*    3*
Core   1:    4     5     6     7
Core   2:    8     9    10    11
Core   3:   12    13    14    15

Change the SMT level to 2:
$ ppc64_cpu --smt=2
$ ppc64_cpu --info
Core   0:    0*    1*    2     3
Core   1:    4     5     6     7
Core   2:    8     9    10    11
Core   3:   12    13    14    15

As expected we see only two CPUs of core 0 are online

Change the SMT level to 4:
$ ppc64_cpu --smt=4
$ ppc64_cpu --info
Core   0:    0*    1*    2*    3*
Core   1:    4*    5*    6*    7*
Core   2:    8*    9*   10*   11*
Core   3:   12*   13*   14*   15*

The CPUs of offline cores are made online. If a core is offline then
enabling SMT should not online CPUs of this core. An arch specific
function topology_is_core_online() is proposed to address this.

topology_sibling_cpumask() might not be available yet for the to be
brought up CPU, so it cannot be relied upon to detect an offline core.

v2:
 * Document PowerPC specific behaviour when enabling SMT

v1:
 https://lore.kernel.org/all/20240612185046.1826891-1-nysal@linux.ibm.com/

[1] https://lore.kernel.org/lkml/20230705145143.40545-1-ldufour@linux.ibm.com/
[2] https://groups.google.com/g/powerpc-utils-devel/c/wrwVzAAnRlI/m/5KJSoqP4BAAJ

Nysal Jan K.A (2):
  cpu/SMT: Enable SMT only if a core is online
  powerpc/topology: Check if a core is online

 Documentation/ABI/testing/sysfs-devices-system-cpu |  3 ++-
 arch/powerpc/include/asm/topology.h                | 13 +++++++++++++
 kernel/cpu.c                                       | 12 +++++++++++-
 3 files changed, 26 insertions(+), 2 deletions(-)


base-commit: 94ede2a3e9135764736221c080ac7c0ad993dc2d
-- 
2.35.3


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

end of thread, other threads:[~2024-08-13 12:43 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-31  3:01 [PATCH v2 0/2] Skip offline cores when enabling SMT on PowerPC Nysal Jan K.A.
2024-07-31  3:01 ` [PATCH v2 1/2] cpu/SMT: Enable SMT only if a core is online Nysal Jan K.A.
2024-07-31  6:26   ` Shrikanth Hegde
2024-07-31 10:27   ` Thomas Gleixner
2024-07-31  3:01 ` [PATCH v2 2/2] powerpc/topology: Check " Nysal Jan K.A.
2024-07-31  6:25   ` Shrikanth Hegde
2024-08-13 12:43 ` [PATCH v2 0/2] Skip offline cores when enabling SMT on PowerPC Michael Ellerman

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