linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] x86: Reduce Memory Usage and Inter-Node message traffic
@ 2007-08-22 17:21 travis
  2007-08-22 17:21 ` [PATCH 1/6] x86: Convert cpu_core_map to be a per cpu variable travis
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: travis @ 2007-08-22 17:21 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-mm, linux-kernel, Andrew Morton, Christoph Lameter

In x86_64 and i386 architectures most arrays that are sized
using NR_CPUS lay in local memory on node 0.  Not only will most
(99%?) of the systems not use all the slots in these arrays,
particularly when NR_CPUS is increased to accommodate future
very high cpu count systems, but a number of cache lines are
passed unnecessarily on the system bus when these arrays are
referenced by cpus on other nodes.

Typically, the values in these arrays are referenced by the cpu
accessing it's own values, though when passing IPI interrupts,
the cpu does access the data relevant to the targeted cpu/node.
Of course, if the referencing cpu is not on node 0, then the
reference will still require cross node exchanges of cache
lines.  A common use of this is for an interrupt service
routine to pass the interrupt to other cpus local to that node.

Ideally, all the elements in these arrays should be moved to the
per_cpu data area.  In some cases (such as x86_cpu_to_apicid)
the array is referenced before the per_cpu data areas are setup.
In this case, a static array is declared in the __initdata
area and initialized by the booting cpu (BSP).  The values are
then moved to the per_cpu area after it is initialized and the
original static array is freed with the rest of the __initdata.

Patches applied to: linux-2.6.23-rc2-mm2
-- 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2007-08-22 19:58 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-22 17:21 [PATCH 0/6] x86: Reduce Memory Usage and Inter-Node message traffic travis
2007-08-22 17:21 ` [PATCH 1/6] x86: Convert cpu_core_map to be a per cpu variable travis
2007-08-22 17:21 ` [PATCH 2/6] x86: Convert cpu_sibling_map " travis
2007-08-22 17:21 ` [PATCH 3/6] x86: Convert x86_cpu_to_apicid " travis
2007-08-22 17:21 ` [PATCH 4/6] x86: Convert cpu_llc_id " travis
2007-08-22 19:58   ` Andi Kleen
2007-08-22 17:21 ` [PATCH 5/6] x86: fix cpu_to_node references travis
2007-08-22 19:56   ` Andi Kleen
2007-08-22 17:21 ` [PATCH 6/6] x86: acpi-use-cpu_physical_id travis
2007-08-22 19:55   ` Andi Kleen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).