lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 1 May 2020 08:41:26 +0530 From: Srikar Dronamraju <srikar@...ux.vnet.ibm.com> To: Andrew Morton <akpm@...ux-foundation.org> Cc: Srikar Dronamraju <srikar@...ux.vnet.ibm.com>, linuxppc-dev@...ts.ozlabs.org, linux-mm@...ck.org, linux-kernel@...r.kernel.org, Michal Hocko <mhocko@...e.com>, Mel Gorman <mgorman@...e.de>, Vlastimil Babka <vbabka@...e.cz>, "Kirill A. Shutemov" <kirill@...temov.name>, Christopher Lameter <cl@...ux.com>, Michael Ellerman <mpe@...erman.id.au>, Linus Torvalds <torvalds@...ux-foundation.org>, Gautham R Shenoy <ego@...ux.vnet.ibm.com> Subject: [PATCH v3 1/3] powerpc/numa: Set numa_node for all possible cpus A Powerpc system with multiple possible nodes and with CONFIG_NUMA enabled always used to have a node 0, even if node 0 does not any cpus or memory attached to it. As per PAPR, node affinity of a cpu is only available once its present / online. For all cpus that are possible but not present, cpu_to_node() would point to node 0. To ensure a cpuless, memoryless dummy node is not online, powerpc need to make sure all possible but not present cpu_to_node are set to a proper node. Cc: linuxppc-dev@...ts.ozlabs.org Cc: linux-mm@...ck.org Cc: linux-kernel@...r.kernel.org Cc: Michal Hocko <mhocko@...e.com> Cc: Mel Gorman <mgorman@...e.de> Cc: Vlastimil Babka <vbabka@...e.cz> Cc: "Kirill A. Shutemov" <kirill@...temov.name> Cc: Christopher Lameter <cl@...ux.com> Cc: Michael Ellerman <mpe@...erman.id.au> Cc: Andrew Morton <akpm@...ux-foundation.org> Cc: Linus Torvalds <torvalds@...ux-foundation.org> Cc: Gautham R Shenoy <ego@...ux.vnet.ibm.com> Signed-off-by: Srikar Dronamraju <srikar@...ux.vnet.ibm.com> --- Changelog v1:->v2: - Rebased to v5.7-rc3 arch/powerpc/mm/numa.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c index 9fcf2d195830..b3615b7fdbdf 100644 --- a/arch/powerpc/mm/numa.c +++ b/arch/powerpc/mm/numa.c @@ -931,8 +931,20 @@ void __init mem_topology_setup(void) reset_numa_cpu_lookup_table(); - for_each_present_cpu(cpu) - numa_setup_cpu(cpu); + for_each_possible_cpu(cpu) { + /* + * Powerpc with CONFIG_NUMA always used to have a node 0, + * even if it was memoryless or cpuless. For all cpus that + * are possible but not present, cpu_to_node() would point + * to node 0. To remove a cpuless, memoryless dummy node, + * powerpc need to make sure all possible but not present + * cpu_to_node are set to a proper node. + */ + if (cpu_present(cpu)) + numa_setup_cpu(cpu); + else + set_cpu_numa_node(cpu, first_online_node); + } } void __init initmem_init(void) -- 2.20.1
Powered by blists - more mailing lists