x86, numa: Fake apicid and pxm mappings for NUMA emulation
commitf51bf3073a145a5b3263fd882c52d6ec04b687da
authorDavid Rientjes <rientjes@google.com>
Thu, 23 Dec 2010 01:23:51 +0000 (22 17:23 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Thu, 23 Dec 2010 23:27:14 +0000 (23 15:27 -0800)
treec9e07ebc957cbb768c4e750b1a67640e0ad81118
parent4e76f4e67a106ed827ca721b4c8b622047cd2f6d
x86, numa: Fake apicid and pxm mappings for NUMA emulation

This patch adds the equivalent of acpi_fake_nodes() for AMD Northbridge
platforms.  The goal is to fake the apicid-to-node mappings for NUMA
emulation so the physical topology of the machine is correctly maintained
within the kernel.

This change also fakes proximity domains for both ACPI and k8 code so the
physical distance between emulated nodes is maintained via
node_distance().  This exports the correct distances via
/sys/devices/system/node/.../distance based on the underlying topology.

A new helper function, fake_physnodes(), is introduced to correctly
invoke the correct NUMA code to fake these two mappings based on the
system type.  If there is no underlying NUMA configuration, all cpus are
mapped to node 0 for local distance.

Since acpi_fake_nodes() is no longer called with CONFIG_ACPI_NUMA, it's
prototype can be removed from the header file for such a configuration.

Signed-off-by: David Rientjes <rientjes@google.com>
LKML-Reference: <alpine.DEB.2.00.1012221701360.3701@chino.kir.corp.google.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/include/asm/acpi.h
arch/x86/include/asm/amd_nb.h
arch/x86/mm/amdtopology_64.c
arch/x86/mm/numa_64.c
arch/x86/mm/srat_64.c