mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
701dc81e74
It turned out that fake numa support is rather useless on s390, since there are no scenarios where there is any performance or other benefit when used. However it does provide maintenance cost and breaks from time to time. Therefore remove it. CONFIG_NUMA is still supported with a very small backend and only one node. This way userspace applications which require NUMA interfaces continue to work. Note that NODES_SHIFT is set to 1 (= 2 nodes) instead of 0 (= 1 node), since there is quite a bit of kernel code which assumes that more than one node is possible if CONFIG_NUMA is enabled. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
43 lines
927 B
C
43 lines
927 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
/*
|
|
* NUMA support for s390
|
|
*
|
|
* Implement NUMA core code.
|
|
*
|
|
* Copyright IBM Corp. 2015
|
|
*/
|
|
|
|
#include <linux/kernel.h>
|
|
#include <linux/mmzone.h>
|
|
#include <linux/cpumask.h>
|
|
#include <linux/memblock.h>
|
|
#include <linux/node.h>
|
|
#include <asm/numa.h>
|
|
|
|
struct pglist_data *node_data[MAX_NUMNODES];
|
|
EXPORT_SYMBOL(node_data);
|
|
|
|
void __init numa_setup(void)
|
|
{
|
|
int nid;
|
|
|
|
nodes_clear(node_possible_map);
|
|
node_set(0, node_possible_map);
|
|
node_set_online(0);
|
|
for (nid = 0; nid < MAX_NUMNODES; nid++) {
|
|
NODE_DATA(nid) = memblock_alloc(sizeof(pg_data_t), 8);
|
|
if (!NODE_DATA(nid))
|
|
panic("%s: Failed to allocate %zu bytes align=0x%x\n",
|
|
__func__, sizeof(pg_data_t), 8);
|
|
}
|
|
NODE_DATA(0)->node_spanned_pages = memblock_end_of_DRAM() >> PAGE_SHIFT;
|
|
NODE_DATA(0)->node_id = 0;
|
|
}
|
|
|
|
static int __init numa_init_late(void)
|
|
{
|
|
register_one_node(0);
|
|
return 0;
|
|
}
|
|
arch_initcall(numa_init_late);
|