From: Zhen Ni <zhen.ni@easystack.cn>
To: akpm@linux-foundation.org, vbabka@kernel.org
Cc: surenb@google.com, mhocko@suse.com, jackmanb@google.com,
hannes@cmpxchg.org, ziy@nvidia.com, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, Zhen Ni <zhen.ni@easystack.cn>
Subject: [PATCH v5 3/3] mm/page_owner: document page_owner filter features
Date: Thu, 7 May 2026 14:46:43 +0800 [thread overview]
Message-ID: <20260507064643.179187-4-zhen.ni@easystack.cn> (raw)
In-Reply-To: <20260507064643.179187-1-zhen.ni@easystack.cn>
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@easystack.cn>
---
Changes in v5:
- No code changes
Changes in v4:
- Update print_mode documentation to reflect string-based interface
* Change from "0/1" to "full_stack"/"stack_handle"
* Add bracket notation example: "[full_stack] stack_handle"
- Update NUMA filter documentation
* Remove "-1" example
* Add empty string as clear method
- Fix indentation: use tabs instead of spaces in code examples
Changes in v3:
- New patch to document filter features as requested by Andrew Morton
---
Documentation/mm/page_owner.rst | 61 ++++++++++++++++++++++++++++++++-
1 file changed, 60 insertions(+), 1 deletion(-)
diff --git a/Documentation/mm/page_owner.rst b/Documentation/mm/page_owner.rst
index 6b12f3b007ec..178bacfbb3fd 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 stack_handle > print_mode
+
+ # Filter by NUMA nodes
+ echo "0,2-3" > nid
+
+5) Analyze information from page owner::
cat /sys/kernel/debug/page_owner_stacks/show_stacks > stacks.txt
cat stacks.txt
@@ -238,6 +248,55 @@ 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:
+
+- ``full_stack`` (default): Print full stack traces
+- ``stack_handle``: Print only stack handles
+
+Reading the file shows the current mode with brackets around the active option::
+
+ cat /sys/kernel/debug/page_owner_filter/print_mode
+ [full_stack] stack_handle
+
+The ``stack_handle`` mode significantly reduces output size. Instead of full
+stack traces, it prints only the handle number::
+
+ 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
+
+To retrieve the full stack trace for a handle, use::
+
+ cat /sys/kernel/debug/page_owner_stacks/show_stacks_handles
+
+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``
+- Clear filter: ``echo > nid`` (empty string)
+
STANDARD FORMAT SPECIFIERS
==========================
::
--
2.20.1
next prev parent reply other threads:[~2026-05-07 6:47 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-07 6:46 [PATCH v5 0/3] mm/page_owner: add filter infrastructure for print_mode and NUMA filtering Zhen Ni
2026-05-07 6:46 ` [PATCH v5 1/3] mm/page_owner: add print_mode filter Zhen Ni
2026-05-08 21:13 ` Andrew Morton
2026-05-09 0:29 ` SeongJae Park
2026-05-09 6:54 ` zhen.ni
2026-05-07 6:46 ` [PATCH v5 2/3] mm/page_owner: add NUMA node filter with nodelist support Zhen Ni
2026-05-09 0:44 ` SeongJae Park
2026-05-09 7:27 ` zhen.ni
2026-05-09 15:35 ` SeongJae Park
2026-05-07 6:46 ` Zhen Ni [this message]
2026-05-09 0:51 ` [PATCH v5 3/3] mm/page_owner: document page_owner filter features SeongJae Park
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260507064643.179187-4-zhen.ni@easystack.cn \
--to=zhen.ni@easystack.cn \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=jackmanb@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.com \
--cc=surenb@google.com \
--cc=vbabka@kernel.org \
--cc=ziy@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.