This patch adds a short description about the contents of /proc/buddyinfo and how this file can be used to assist in checking for memory fragmentation issues. Signed-off-by: Elie De Brauwer <eliedebrauwer@xxxxxxxxx> --- man5/proc.5 | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/man5/proc.5 b/man5/proc.5 index 337f6b6..777611a 100644 --- a/man5/proc.5 +++ b/man5/proc.5 @@ -1825,6 +1825,45 @@ Advanced power management version and battery information when .B CONFIG_APM is defined at kernel compilation time. .TP +.I /proc/buddyinfo +This file contains information which is used for diagnosing memory +fragmentation issues. +Each line starts with the identification of the node and the name +of the zone which together identify a memory region, this is then +followed by the count of available chunks of a certain order in +which these zones are split. +The size in bytes of a certain order is given by: +.IR "(2^order)\ *\ PAGE_SIZE" . +The binary buddy allocator algorithm inside the kernel will split +one chunk into two chunks of a smaller order (thus with half the +size) or combine two contiguous chunks into one larger chunk of +a higher order (thus with double the size) to satisfy allocation +requests and to counter memory fragmentation. +The order matches the column number, when starting to count at zero. + +For example on a x86_64 system: +.in +4n +.nf +Node 0, zone DMA 1 1 1 0 2 1 1 0 1 1 3 +Node 0, zone DMA32 65 47 4 81 52 28 13 10 5 1 404 +Node 0, zone Normal 216 55 189 101 84 38 37 27 5 3 587 +.fi +.in + +In this example there is one node containing three zones and there +are 11 different chunk sizes. +If the page size is 4 kilobyte, then the first zone called +.I DMA +(on x86 the first 16 megabyte of memory) has 1 chunk of 4 kilobyte +(order 0) available and has 3 chunks of 4 megabyte (order 10) available. + +If the memory is heavily fragmentated, the counters for higher +order chunks will be zero and allocation of large contiguous areas +will fail. + +Further information about the zones can be found in +.IR /proc/zoneinfo . +.TP .I /proc/bus Contains subdirectories for installed busses. .TP -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html