[lkml]   [2007]   [May]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
Subject[PATCH] change zonelist order v5 [3/3] documentation
Patch for documentation.

Signed-Off-By: KAMEZAWA hiroyuki <>

Documentation/kernel-parameters.txt | 10 +++++++
Documentation/sysctl/vm.txt | 48 ++++++++++++++++++++++++++++++++++++
2 files changed, 58 insertions(+)

Index: linux-2.6.21-mm1/Documentation/kernel-parameters.txt
--- linux-2.6.21-mm1.orig/Documentation/kernel-parameters.txt
+++ linux-2.6.21-mm1/Documentation/kernel-parameters.txt
@@ -1233,6 +1233,16 @@ and is between 256 and 4096 characters.

nr_uarts= [SERIAL] maximum number of UARTs to be registered.

+ numa_zonelist_oder= [KNL,BOOT]
+ Select zonelist order for NUMA. zonelist is used for
+ desiding where the kernel allocates memory from.
+ Default is automatic configuration. If "node" is
+ specified, zonelist is ordered by locality. This can
+ offer the best locality but possibility of OOM may
+ increase. If "zone" is specified, the zonelist is
+ ordered by zone_type.
+ See Documentaion/sysctl/vm.txt numa_zonelist_order.
opl3= [HW,OSS]
Format: <io>

Index: linux-2.6.21-mm1/Documentation/sysctl/vm.txt
--- linux-2.6.21-mm1.orig/Documentation/sysctl/vm.txt
+++ linux-2.6.21-mm1/Documentation/sysctl/vm.txt
@@ -35,6 +35,7 @@ Currently, these files are in /proc/sys/
- stat_interval
- readahead_ratio
- readahead_hit_rate
+- numa_zonelist_order


@@ -293,3 +294,49 @@ Possible values can be:
The larger value, the more capabilities, with more possible overheads.

The default value is 1.
+This sysctl is only for NUMA.
+'where the memory is allocated from' is controlled by zonelist.
+(This documentation ignores ZONE_HIGHMEM/ZONE_DMA32 for simple explanation.
+ you may be able to read ZONE_DMA as ZONE_DMA32...)
+In non-NUMA case, a zonelist for GFP_KERNEL is ordered as following.
+This means that a memory allocation request for GFP_KERNEL will
+get memory from ZONE_DMA only when ZONE_NORMAL is not available.
+In NUMA case, you can think of following 2 types of order.
+Assume 2 node NUMA and below is zonelist of Node(0)'s GFP_KERNEL
+(A) Node(0) ZONE_NORMAL -> Node(0) ZONE_DMA -> Node(1) ZONE_NORMAL
+(B) Node(0) ZONE_NORMAL -> Node(1) ZONE_NORMAL -> Node(0) ZONE_DMA.
+Type(A) offers the best locality for processes on Node(0), but ZONE_DMA
+will be used before ZONE_NORMAL exhaustion. This increases possibility of
+out-of-memory(OOM) of ZONE_DMA because ZONE_DMA is tend to be small.
+Type(B) cannot offer the best locality but very robust against OOM of DMA zone.
+Type(A) is called as "Node" order. Type (B) is "Zone" order.
+"Node order" orders the zonelists by node, then by zone within each node.
+This will offer the best locality but increases possibility of OOM.
+Specify "[Nn]ode" for zone order
+"Zone Order" preserves the DMA zone as long as possible but
+results in off-node allocation [for node 0] earlier.
+Specify "[Zz]one"for zode order.
+Specify "[Dd]efault" to request automatic configuration. Autoconfiguration
+will select "node" order in following case.
+(1) if the DMA zone does not exist or
+(2) if the DMA zone comprises greater than 50% of the available memory or
+(3) if a node's DMA zone comprises greater than 60% of its local memory and
+ the amount of local memory is enough big.
+Otherwise, "zone" order will be selected. Default order is recommended unless
+unless this is causing problems for your system/application.
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

 \ /
  Last update: 2007-05-08 13:21    [W:0.129 / U:5.496 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site