diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> | 2021-08-12 18:52:21 +0530 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2021-08-13 22:04:26 +1000 |
commit | 8ddc6448ec5a5ef50eaa581a7dec0e12a02850ff (patch) | |
tree | 50b9b464809bf22d1f0b9c0b04372214146a6596 /arch/powerpc/include | |
parent | 0eacd06bb8adea8dd9edb0a30144166d9f227e64 (diff) | |
download | linux-stable-8ddc6448ec5a5ef50eaa581a7dec0e12a02850ff.tar.gz linux-stable-8ddc6448ec5a5ef50eaa581a7dec0e12a02850ff.tar.bz2 linux-stable-8ddc6448ec5a5ef50eaa581a7dec0e12a02850ff.zip |
powerpc/pseries: Consolidate different NUMA distance update code paths
The associativity details of the newly added resourced are collected from
the hypervisor via "ibm,configure-connector" rtas call. Update the numa
distance details of the newly added numa node after the above call.
Instead of updating NUMA distance every time we lookup a node id
from the associativity property, add helpers that can be used
during boot which does this only once. Also remove the distance
update from node id lookup helpers.
Currently, we duplicate parsing code for ibm,associativity and
ibm,associativity-lookup-arrays in the kernel. The associativity array provided
by these device tree properties are very similar and hence can use
a helper to parse the node id and numa distance details.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210812132223.225214-4-aneesh.kumar@linux.ibm.com
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r-- | arch/powerpc/include/asm/topology.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/topology.h b/arch/powerpc/include/asm/topology.h index e4db64c0e184..a6425a70c37b 100644 --- a/arch/powerpc/include/asm/topology.h +++ b/arch/powerpc/include/asm/topology.h @@ -64,6 +64,7 @@ static inline int early_cpu_to_node(int cpu) } int of_drconf_to_nid_single(struct drmem_lmb *lmb); +void update_numa_distance(struct device_node *node); #else @@ -93,6 +94,7 @@ static inline int of_drconf_to_nid_single(struct drmem_lmb *lmb) return first_online_node; } +static inline void update_numa_distance(struct device_node *node) {} #endif /* CONFIG_NUMA */ #if defined(CONFIG_NUMA) && defined(CONFIG_PPC_SPLPAR) |