proc.5: Document /proc/buddyinfo

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@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Elie De Brauwer 2014-09-27 19:35:48 +02:00 committed by Michael Kerrisk
parent 1f63d3ec81
commit eb7097c2c4
1 changed files with 39 additions and 0 deletions

View File

@ -1925,6 +1925,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