1
linux/arch/x86/mm
Tejun Heo 56396e6823 x86-64, NUMA: Don't call numa_set_distanc() for all possible node combinations during emulation
The distance transforming in numa_emulation() used to call
numa_set_distance() for all MAX_NUMNODES * MAX_NUMNODES node
combinations regardless of which are enabled.  As numa_set_distance()
ignores all out-of-bound distance settings, this doesn't cause any
problem other than looping unnecessarily many times during boot.

However, as MAX_NUMNODES * MAX_NUMNODES can be pretty high, update the
code such that it iterates through only the enabled combinations.

Yinghai Lu identified the issue and provided an initial patch to
address the issue; however, the patch was incorrect in that it didn't
build emulated distance table when there's no physical distance table
and unnecessarily complex.

  http://thread.gmane.org/gmane.linux.kernel/1107986/focus=1107988

Signed-off-by: Tejun Heo <tj@kernel.org>
Reported-by: Yinghai Lu <yinghai@kernel.org>
Acked-by: Yinghai Lu <yinghai@kernel.org>
2011-03-12 11:41:10 +01:00
..
kmemcheck x86: Eliminate bp argument from the stack tracing routines 2010-11-18 14:37:34 +01:00
amdtopology_64.c x86-64, NUMA: Unify emulated distance mapping 2011-02-16 17:11:10 +01:00
dump_pagetables.c x86, mm: Create symbolic index into address_markers array 2010-07-20 16:56:19 -07:00
extable.c
fault.c x86: access_error API cleanup 2010-10-26 16:52:09 -07:00
gup.c thp: mmu_notifier_test_young 2011-01-13 17:32:46 -08:00
highmem_32.c mm: fix race in kunmap_atomic() 2010-10-27 18:03:05 -07:00
hugetlbpage.c
init_32.c x86: Rename e820_table_* to pgt_buf_* 2011-02-24 14:52:18 +01:00
init_64.c x86-64, NUMA: Revert NUMA affine page table allocation 2011-03-04 10:26:36 +01:00
init.c x86: Rename e820_table_* to pgt_buf_* 2011-02-24 14:52:18 +01:00
iomap_32.c mm: fix race in kunmap_atomic() 2010-10-27 18:03:05 -07:00
ioremap.c xen: Cope with unmapped pages when initializing kernel pagetable 2010-10-13 16:07:13 -07:00
kmmio.c x86, kmmio/mmiotrace: Fix double free of kmmio_fault_pages 2010-06-18 11:30:09 +02:00
Makefile x86-64, NUMA: Move NUMA emulation into numa_emulation.c 2011-02-22 11:10:08 +01:00
memblock.c x86, memblock: Remove __memblock_x86_find_in_range_size() 2010-10-05 21:45:43 -07:00
memtest.c x86, memblock: Replace e820_/_early string with memblock_ 2010-08-27 11:13:47 -07:00
mmap.c
mmio-mod.c
numa_32.c x86, NUMA: Move *_numa_init() invocations into initmem_init() 2011-02-16 12:13:06 +01:00
numa_64.c x86-64, NUMA: Clean up initmem_init() 2011-03-04 15:17:21 +01:00
numa_emulation.c x86-64, NUMA: Don't call numa_set_distanc() for all possible node combinations during emulation 2011-03-12 11:41:10 +01:00
numa_internal.h x86-64, NUMA: Move NUMA emulation into numa_emulation.c 2011-02-22 11:10:08 +01:00
numa.c x86, numa: Add error handling for bad cpu-to-node mappings 2011-02-14 13:29:27 +01:00
pageattr-test.c
pageattr.c x86, nx: Don't force pages RW when setting NX bits 2011-02-02 16:02:36 -08:00
pat_internal.h x86, pat: Fix memory leak in free_memtype 2010-05-26 11:26:04 -07:00
pat_rbtree.c rbtree: Undo augmented trees performance damage and regression 2010-07-05 14:43:50 +02:00
pat.c Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 10:17:52 -07:00
pf_in.c x86,mmiotrace: Add support for tracing STOS instruction 2010-08-02 01:32:01 +02:00
pf_in.h
pgtable_32.c x86: remove last traces of quicklist usage 2010-05-24 13:33:31 -07:00
pgtable.c thp: add x86 32bit support 2011-01-13 17:32:44 -08:00
physaddr.c
physaddr.h
setup_nx.c x86, cpu: Only CPU features determine NX capabilities 2010-11-10 15:43:15 -08:00
srat_32.c x86: Unify cpu/apicid <-> NUMA node mapping between 32 and 64bit 2011-01-28 14:54:09 +01:00
srat_64.c x86-64, NUMA: Unify emulated distance mapping 2011-02-16 17:11:10 +01:00
testmmiotrace.c x86, kmmio/mmiotrace: Fix double free of kmmio_fault_pages 2010-06-18 11:30:09 +02:00
tlb.c x86: Avoid tlbstate lock if not enough cpus 2011-02-14 13:03:08 +01:00