Re: percpu-2.5.63-bk5-1 (properly generated)

William Lee Irwin III (
Sun, 2 Mar 2003 05:15:06 -0800

On Sun, Mar 02, 2003 at 03:07:47AM -0800, William Lee Irwin III wrote:
> This patch does 3 different things:
> (1) shoves per-cpu areas into node-local memory
> (2) creates a new per-node thing analogous to per-cpu
> (3) uses (1) and (2) to shove several frequently-accessed things into
> node-local memory
> Tested, boots, and runs on NUMA-Q. Trims 6s of 41s off kernel compiles.
> Compiletested for walmart x86 SMP/UP, and could use runtime testing.
> A few non-x86 arches probably need fixups for per_cpu irq_stat[].
> Also available at:

Okay, I got requests for a more detailed changelog, so here it is:
This patch does 19 different things when put under the microscope
and/or in an excessively finegrained subdivision of simple concepts.

(1) reuse the arch/i386/discontigmem.c per-node mem_map[] virtual remap
to remap node-local memory backing per_cpu and per_node areas
(2) make irq_stat[] per_cpu, x86-only
(3) make mmu_gathers[] per_cpu, with comcomitant divorce from asm-generic
(4) delay discontig zone_sizes_init() to dodge bootstrap order issues
(5) add .data.pernode section handling in
(6) per_cpu()/__get_cpu_var() needs to parenthesize the cpu arg
(7) introduced asm-generic/pernode.h to do similar things as percpu.h
(8) added MAX_NODE_CPUS for pessimistic sizing of virtual remapping arenas
(9) fix return type error in NUMA-Q get_zholes_size()
(10) #undef asm-i386/per{cpu,node}.h's __GENERIC_PER_{CPU,NODE}
(11) declare setup_per_cpu_areas() in asm-i386/percpu.h
(12) make an asm-i386/pernode.h stub header like include/asm-generic/pernode.h
(13) declare MAX_NODE_CPUS in include/asm-i386/srat.h
(14) make zone_table[] per_node
(15) call setup_per_node_areas() in init/main.c, with analogous hooks
(16) make task_cache per_cpu
(17) make runqueues[] per_cpu
(18) make node_nr_running[] per_node
(19) make reap_timers[] per_cpu

-- wli
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at