All of lore.kernel.org
 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.
  0 siblings, 0 replies; 13+ messages in thread
From: Nysal Jan K.A. @ 2024-07-31  3:01 UTC (permalink / raw)
  To: Michael Ellerman, Thomas Gleixner
  Cc: Tyrel Datwyler, Eric DeVolder, Stephen Rothwell, Peter Zijlstra,
	Dave Hansen, Nicholas Piggin, linux-kernel, Christophe Leroy,
	Laurent Dufour, Pawan Gupta, Nysal Jan K.A, Naveen N. Rao,
	Sourabh Jain, Michal Suchanek, linuxppc-dev, Ard Biesheuvel

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] 13+ messages in thread

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

Thread overview: 13+ 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 ` 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  3:01   ` Nysal Jan K.A.
2024-07-31  6:26   ` Shrikanth Hegde
2024-07-31  6:26     ` Shrikanth Hegde
2024-07-31 10:27   ` Thomas Gleixner
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  3:01   ` Nysal Jan K.A.
2024-07-31  6:25   ` Shrikanth Hegde
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 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.