Re: [PATCH v3 4/4] mm/page_owner: document page_owner filter features

From: zhen.ni

Date: Wed Apr 29 2026 - 05:56:06 EST




在 2026/4/29 09:35, SeongJae Park 写道:
On Tue, 28 Apr 2026 15:11:12 +0800 Zhen Ni <zhen.ni@xxxxxxxxxxxx> wrote:

Add documentation for the page_owner filter functionality, including:
- Print mode filter (full stack vs stack handle)
- NUMA node filter (single node, multiple nodes, ranges)
- Usage examples for both filters

Signed-off-by: Zhen Ni <zhen.ni@xxxxxxxxxxxx>
---

Changes in v3:
- New patch to document filter features as requested by Andrew Morton
---
Documentation/mm/page_owner.rst | 55 ++++++++++++++++++++++++++++++++-
1 file changed, 54 insertions(+), 1 deletion(-)

diff --git a/Documentation/mm/page_owner.rst b/Documentation/mm/page_owner.rst
index 6b12f3b007ec..6261366d33fe 100644
--- a/Documentation/mm/page_owner.rst
+++ b/Documentation/mm/page_owner.rst
@@ -74,7 +74,17 @@ Usage
3) Do the job that you want to debug.
-4) Analyze information from page owner::
+4) (Optional) Use filters to focus on specific memory allocations::
+
+ cd /sys/kernel/debug/page_owner_filter
+
+ # Print only stack handles instead of full traces
+ echo 1 > print_mode
+
+ # Filter by NUMA nodes
+ echo "0,2-3" > nid

Nit. Other parts of the document uses tab for the indentation, while the above
new snippet is using four spaces. How about using tab for the consistency?

+
+5) Analyze information from page owner::
cat /sys/kernel/debug/page_owner_stacks/show_stacks > stacks.txt
cat stacks.txt
@@ -238,6 +248,49 @@ Usage
./page_owner_sort <input> <output> --tgid=1,2,3
./page_owner_sort <input> <output> --name name1,name2
+Page Owner Filters
+==================
+
+The page_owner feature provides filtering capabilities to focus on specific
+memory allocations (e.g., by NUMA node). Filters are controlled through debugfs
+files in ``/sys/kernel/debug/page_owner_filter/``.
+
+Print Mode Filter
+-----------------
+
+The ``print_mode`` file controls the level of detail in stack trace output.
+
+Available modes:
+
+- ``0`` (default): Print full stack traces
+- ``1``: Print only stack handles
+
+The ``print_mode=1`` output format::
+
+ Page allocated via order 0, mask 0x42800(GFP_NOWAIT|__GFP_COMP),
+ pid 1, tgid 1 (systemd), ts 349667370 ns
+ PFN 0xa00a2 type Unmovable Block 1280 type Unmovable
+ Flags 0x33fffe0000004124(...)
+ handle: 17432583

Tab for indentation?

+
+To retrieve the full stack trace for a handle, use::
+
+ cat /sys/kernel/debug/page_owner_stacks/show_stacks_handles

Tab?

+
+NUMA Node Filter
+----------------
+
+The ``nid`` file filters pages by NUMA node. This is useful for NUMA-aware
+environments to analyze node-specific memory allocation.
+
+Supported input formats:
+
+- Single node: ``echo "2" > nid``
+- Multiple nodes: ``echo "0,2,3" > nid``
+- Node range: ``echo "0-3" > nid``
+- Mixed format: ``echo "0,2-4,7" > nid``
+- Disable filter: ``echo "-1" > nid``
+
STANDARD FORMAT SPECIFIERS
==========================
::
--
2.20.1


Thanks,
SJ


I will fix all instances to use tab .

Thanks,
Zhen