Re: [PATCH v3 4/4] mm/page_owner: document page_owner filter features
From: SeongJae Park
Date: Tue Apr 28 2026 - 21:35:29 EST
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