aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLance Yang <[email protected]>2024-06-28 21:07:50 +0800
committerAndrew Morton <[email protected]>2024-07-12 15:52:13 -0700
commit9b89e018990de47c72ef8b2ca29204f88fda8f05 (patch)
treef25b905047cf0db0053c3c9afd9d862e8fd8a55d
parentf216c845f3c772e54d27fe209fd300b10e7bf54a (diff)
mm: add docs for per-order mTHP split counters
This commit introduces documentation for mTHP split counters in transhuge.rst. [[email protected]: improve the doc as suggested by Ryan] Link: https://lkml.kernel.org/r/[email protected] [[email protected]: tweak Documentation/admin-guide/mm/transhuge.rst] Link: https://lkml.kernel.org/r/[email protected] Link: https://lkml.kernel.org/r/[email protected] Signed-off-by: Mingzhe Yang <[email protected]> Signed-off-by: Lance Yang <[email protected]> Reviewed-by: Barry Song <[email protected]> Reviewed-by: Ryan Roberts <[email protected]> Acked-by: David Hildenbrand <[email protected]> Cc: Bang Li <[email protected]> Cc: Baolin Wang <[email protected]> Cc: Yang Shi <[email protected]> Cc: Zi Yan <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
-rw-r--r--Documentation/admin-guide/mm/transhuge.rst19
1 files changed, 15 insertions, 4 deletions
diff --git a/Documentation/admin-guide/mm/transhuge.rst b/Documentation/admin-guide/mm/transhuge.rst
index 1f72b00af5d3..a1bc9b24e29a 100644
--- a/Documentation/admin-guide/mm/transhuge.rst
+++ b/Documentation/admin-guide/mm/transhuge.rst
@@ -369,10 +369,6 @@ also applies to the regions registered in khugepaged.
Monitoring usage
================
-.. note::
- Currently the below counters only record events relating to
- PMD-sized THP. Events relating to other THP sizes are not included.
-
The number of PMD-sized anonymous transparent huge pages currently used by the
system is available by reading the AnonHugePages field in ``/proc/meminfo``.
To identify what applications are using PMD-sized anonymous transparent huge
@@ -514,6 +510,21 @@ file_fallback_charge
falls back to using small pages even though the allocation was
successful.
+split
+ is incremented every time a huge page is successfully split into
+ smaller orders. This can happen for a variety of reasons but a
+ common reason is that a huge page is old and is being reclaimed.
+
+split_failed
+ is incremented if kernel fails to split huge
+ page. This can happen if the page was pinned by somebody.
+
+split_deferred
+ is incremented when a huge page is put onto split queue.
+ This happens when a huge page is partially unmapped and splitting
+ it would free up some memory. Pages on split queue are going to
+ be split under memory pressure, if splitting is possible.
+
As the system ages, allocating huge pages may be expensive as the
system uses memory compaction to copy data around memory to free a
huge page for use. There are some counters in ``/proc/vmstat`` to help