x86/numa: Allow specifying node_distance() for numa=fake
Allows emulating more interesting NUMA configurations like a quad socket AMD Magny-Cour: "numa=fake=8:10,16,16,22,16,22,16,22, 16,10,22,16,22,16,22,16, 16,22,10,16,16,22,16,22, 22,16,16,10,22,16,22,16, 16,22,16,22,10,16,16,22, 22,16,22,16,16,10,22,16, 16,22,16,22,16,22,10,16, 22,16,22,16,22,16,16,10" Which has a non-fully-connected topology. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Tejun Heo <tj@kernel.org> Cc: Yinghai Lu <yinghai@kernel.org> Cc: x86@kernel.org Link: http://lkml.kernel.org/n/tip-e1136ef7kdffj7yf9tjhydln@git.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
19209bbb86
commit
94c0dd3278
@ -339,9 +339,11 @@ void __init numa_emulation(struct numa_meminfo *numa_meminfo, int numa_dist_cnt)
|
||||
} else {
|
||||
unsigned long n;
|
||||
|
||||
n = simple_strtoul(emu_cmdline, NULL, 0);
|
||||
n = simple_strtoul(emu_cmdline, &emu_cmdline, 0);
|
||||
ret = split_nodes_interleave(&ei, &pi, 0, max_addr, n);
|
||||
}
|
||||
if (*emu_cmdline == ':')
|
||||
emu_cmdline++;
|
||||
|
||||
if (ret < 0)
|
||||
goto no_emu;
|
||||
@ -418,7 +420,9 @@ void __init numa_emulation(struct numa_meminfo *numa_meminfo, int numa_dist_cnt)
|
||||
int physj = emu_nid_to_phys[j];
|
||||
int dist;
|
||||
|
||||
if (physi >= numa_dist_cnt || physj >= numa_dist_cnt)
|
||||
if (get_option(&emu_cmdline, &dist) == 2)
|
||||
;
|
||||
else if (physi >= numa_dist_cnt || physj >= numa_dist_cnt)
|
||||
dist = physi == physj ?
|
||||
LOCAL_DISTANCE : REMOTE_DISTANCE;
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user