summaryrefslogtreecommitdiffstats
path: root/man/man5/proc_buddyinfo.5
diff options
context:
space:
mode:
Diffstat (limited to 'man/man5/proc_buddyinfo.5')
-rw-r--r--man/man5/proc_buddyinfo.558
1 files changed, 58 insertions, 0 deletions
diff --git a/man/man5/proc_buddyinfo.5 b/man/man5/proc_buddyinfo.5
new file mode 100644
index 000000000..3bdae717e
--- /dev/null
+++ b/man/man5/proc_buddyinfo.5
@@ -0,0 +1,58 @@
+.\" Copyright (C) 1994, 1995, Daniel Quinlan <quinlan@yggdrasil.com>
+.\" Copyright (C) 2002-2008, 2017, Michael Kerrisk <mtk.manpages@gmail.com>
+.\" Copyright (C) 2023, Alejandro Colomar <alx@kernel.org>
+.\"
+.\" SPDX-License-Identifier: GPL-3.0-or-later
+.\"
+.TH proc_buddyinfo 5 (date) "Linux man-pages (unreleased)"
+.SH NAME
+/proc/buddyinfo \- memory fragmentation
+.SH DESCRIPTION
+.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 the formula:
+.IP
+.in +4n
+.EX
+(2\[ha]order)\ *\ PAGE_SIZE
+.EE
+.in
+.IP
+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.
+.IP
+For example on an x86-64 system:
+.RS -12
+.EX
+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
+.EE
+.RE
+.IP
+In this example, there is one node containing three zones and there
+are 11 different chunk sizes.
+If the page size is 4 kilobytes, then the first zone called
+.I DMA
+(on x86 the first 16 megabyte of memory) has 1 chunk of 4 kilobytes
+(order 0) available and has 3 chunks of 4 megabytes (order 10) available.
+.IP
+If the memory is heavily fragmented, the counters for higher
+order chunks will be zero and allocation of large contiguous areas
+will fail.
+.IP
+Further information about the zones can be found in
+.IR /proc/zoneinfo .
+.SH SEE ALSO
+.BR proc (5)