linux_dsm_epyc7002/arch/x86/kernel/cpu
Yinghai Lu d9c2d5ac6a x86, numa: Use near(er) online node instead of roundrobin for NUMA
CPU to node mapping is set via the following sequence:

 1. numa_init_array(): Set up roundrobin from cpu to online node

 2. init_cpu_to_node(): Set that according to apicid_to_node[]
			according to srat only handle the node that
			is online, and leave other cpu on node
			without ram (aka not online) to still
			roundrobin.

3. later call srat_detect_node for Intel/AMD, will use first_online
   node or nearby node.

Problem is that setup_per_cpu_areas() is not called between 2 and 3,
the per_cpu for cpu on node with ram is on different node, and could
put that on node with two hops away.

So try to optimize this and add find_near_online_node() and call
init_cpu_to_node().

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
LKML-Reference: <4B07A739.3030104@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-11-23 10:06:24 +01:00
..
cpufreq Merge branch 'perfcounters-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-20 15:54:37 -07:00
mcheck headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
mtrr x86: When cleaning MTRRs, do not fold WP into UC 2009-11-17 10:26:53 -08:00
.gitignore Update .gitignore files for generated targets 2008-10-20 11:24:31 -07:00
addon_cpuid_features.c x86 ACPI: Add support for Always Running APIC timer 2009-04-07 18:17:51 -04:00
amd.c trivial: fix missing printk space in amd_k7_smp_check 2009-09-21 15:14:56 +02:00
bugs_64.c x86/cpu: Clean up various files a bit 2009-07-11 11:24:09 +02:00
bugs.c x86/cpu: Clean up various files a bit 2009-07-11 11:24:09 +02:00
centaur.c x86/centaur: merge 32 & 64 bit version 2009-03-14 16:27:29 +01:00
cmpxchg.c x86: move cmpxchg fallbacks to a generic place 2008-08-18 16:05:47 +02:00
common.c x86, mm: Clean up and simplify NX enablement 2009-11-16 13:44:59 -08:00
cpu_debug.c percpu: cleanup percpu array definitions 2009-06-24 15:13:45 +09:00
cpu.h x86: cpu/cpu.h cleanup 2009-03-23 02:06:51 +05:30
cyrix.c x86/cpu: Clean up various files a bit 2009-07-11 11:24:09 +02:00
hypervisor.c x86: Move tsc_calibration to x86_init_ops 2009-08-31 09:35:47 +02:00
intel_cacheinfo.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:57:32 -07:00
intel.c x86, numa: Use near(er) online node instead of roundrobin for NUMA 2009-11-23 10:06:24 +01:00
Makefile perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
mkcapflags.pl x86: generate names for /proc/cpuinfo from <asm/cpufeature.h> 2008-08-27 19:23:22 -07:00
perf_event.c perf_event, x86: Fix 'perf sched record' crashing the machine 2009-09-23 11:25:56 +02:00
perfctr-watchdog.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
powerflags.c x86: generate names for /proc/cpuinfo from <asm/cpufeature.h> 2008-08-27 19:23:22 -07:00
proc.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-14 07:57:32 -07:00
sched.c sched: x86: Name old_perf in a unique way 2009-09-16 11:21:07 +02:00
transmeta.c x86: move various CPU initialization objects into .cpuinit.rodata 2009-03-12 13:13:07 +01:00
umc.c x86: move various CPU initialization objects into .cpuinit.rodata 2009-03-12 13:13:07 +01:00
vmware.c x86: Print the hypervisor returned tsc_khz during boot 2009-09-20 20:25:36 +02:00