Skip to content

arm64: numa/topology/smp: update the cpumasks for CPU hotplug

Ganapatrao Kulkarni linux-arm-kernel 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v2 Latest1 of 7 patches 0 repliesNew

1 of 7 patches is in this archive. The cover letter announces 7.

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
2/7arm64: numa: separate out updates to percpu nodeid and NUMA node cpumap+0 -00 replies

Reviews trailers per patch

The patch has a Reviewed-by or Acked-by.

PatchGanapatrao Kulkarni
SeriesT-b
2/7R-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v2 thread

Cover letter [PATCH v2 0/7] arm64: numa/topology/smp: update the cpumasks for CPU hotplug

Hi Sudeep,

Quoted 9 lines · Sudeep Holla

Hi,

Commit 37c3ec2d810f ("arm64: topology: divorce MC scheduling domain from core_siblings") was reported to cause some hotplug and system suspend regressions when
it was merged. On investigation, it was found that unlike x86/PPC,
arm64 doesn't update the cpu and numa masks on CPU hotplug. That's somewhat expected from the scheduler.

Quoted 7 lines

Since these changes were bit invasive as a solution to the above mentioned regression, as small change was temporarily applied as a fix. This series updates the cpu and numa masks on CPU hotplug and reverts that temporary fix.

It would be good to get this tested(CPU hotplug - few and all CPUs in a socket) on multi-socket/NUMA systems from Cavium and Huawei/Hisilicon.

testing looks ok on Cavium's ThunderX2 system. please feel free to add,

root at B1SABER_2>sudeep>> lscpu

Architecture:          aarch64
Byte Order:            Little Endian
CPU(s):                224
On-line CPU(s) list:   0-223
Thread(s) per core:    4
Core(s) per socket:    28
Socket(s):             2
NUMA node(s):          2
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              32768K
NUMA node0 CPU(s):     0-111
NUMA node1 CPU(s):     112-223
root at B1SABER_2>sudeep>> sh hp.sh 0 111 0
root at B1SABER_2>sudeep>> lscpu
Architecture:          aarch64
Byte Order:            Little Endian
On-line CPU(s) list:   112-223
Off-line CPU(s) list:  0-111
Thread(s) per core:    4
Core(s) per socket:    28
Socket(s):             1
NUMA node(s):          2
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              32768K

NUMA node0 CPU(s):
NUMA node1 CPU(s): 112-223
root at B1SABER_2>sudeep>> sh hp.sh 0 111 1 root at B1SABER_2>sudeep>> lscpu

Architecture:          aarch64
Byte Order:            Little Endian
CPU(s):                224
On-line CPU(s) list:   0-223
Thread(s) per core:    4
Core(s) per socket:    28
Socket(s):             2
NUMA node(s):          2
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              32768K
NUMA node0 CPU(s):     0-111
NUMA node1 CPU(s):     112-223

root at B1SABER_2>sudeep>>

Quoted 25 lines

Regards,
Sudeep

v1->v2:
- Rebased on v4.18-rc1 and hence do revert of the temporary fix that was merged for v4.18
- Removed one of the wrong use of possible_mask

Sudeep Holla (7):
arm64: topology: refactor reset_cpu_topology to add support for removing topology
arm64: numa: separate out updates to percpu nodeid and NUMA node cpumap
arm64: topology: add support to remove cpu topology sibling masks
arm64: topology: restrict updating siblings_masks to online cpus only
arm64: smp: remove cpu and numa topology information when hotplugging out CPU
arm64: topology: rename llc_siblings to align with other struct members
arm64: topology: re-introduce numa mask check for scheduler MC selection

  arch/arm64/include/asm/numa.h     |  4 +++
  arch/arm64/include/asm/topology.h |  3 +-
  arch/arm64/kernel/smp.c           |  5 +++
  arch/arm64/kernel/topology.c      | 69 ++++++++++++++++++++++++++-------------
  arch/arm64/mm/numa.c              | 29 +++++++++++-----
  5 files changed, 79 insertions(+), 31 deletions(-)
Quoted 3 lines

--
2.7.4

thanks
Ganapat