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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]