[PATCH 0/2] SPARSEMEM: pfn_to_nid implementation v2

Andy Whitcroft
2005-11-22T18:07:24Z

There are three places we define pfn_to_nid(). Two in linux/mmzone.h
and one in asm/mmzone.h. These in essence represent the three memory
models. The definition in linux/mmzone.h under !NEED_MULTIPLE_NODES
is both the FLATMEM definition and the optimisation for single
NUMA nodes; the one under SPARSEMEM is the NUMA sparsemem one;
the one in asm/mmzone.h under DISCONTIGMEM is the discontigmem one.
This is not in the least bit obvious, particularly the connection
between the non-NUMA optimisations and the memory models.

Following in the email are two patches:

flatmem-split-out-memory-model: simplifies the selection of
pfn_to_nid() implementations. The selection is based primarily
off the memory model selected. Optimisations for non-NUMA are
applied where needed.

sparse-provide-pfn_to_nid: implement pfn_to_nid() for SPARSEMEM

Boot tested on for both SPARSEMEM and DISCONTIGMEM on all my test
boxes. Also compile tested for FLATMEM and SPARSEMEM without NUMA.
Against 2.6.15-rc2.

Next I'll review the configuration options to see if we can simplify
them any.

-apw