mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-28 18:05:00 -04:00
Add a userspace filtering tool for page_owner that supports per-fd filtering with print_mode and NUMA node filters. Features: - Three print modes: stack (default), handle, stack_handle - NUMA node filtering with flexible formats (single: 0, multiple: 0,1,2, range: 0-3, mixed: 0,2-3) - Per-file-descriptor filter state for independent filtering Usage examples: # Filter by print mode ./page_owner_filter -m handle ./page_owner_filter -m stack_handle # Filter by NUMA node ./page_owner_filter -n 0 ./page_owner_filter -n 0-3 # Combined filters ./page_owner_filter -m stack -n 0,1,2 ./page_owner_filter -m handle -n 0,2-3 The tool validates inputs before sending commands to the kernel and provides clear error messages when the kernel does not support per-fd filtering. Link: https://lore.kernel.org/20260707115411.1714314-4-zhen.ni@easystack.cn Signed-off-by: Zhen Ni <zhen.ni@easystack.cn> Tested-by: Zi Yan <ziy@nvidia.com> Acked-by: Vlastimil Babka (SUSE) <vbabka@kernel.org> Acked-by: Zi Yan <ziy@nvidia.com> Cc: Brendan Jackman <jackmanb@google.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Michal Hocko <mhocko@suse.com> Cc: Suren Baghdasaryan <surenb@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
34 lines
726 B
Makefile
34 lines
726 B
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
# Makefile for vm tools
|
|
#
|
|
include ../scripts/Makefile.include
|
|
|
|
BUILD_TARGETS=page-types slabinfo page_owner_sort page_owner_filter thp_swap_allocator_test
|
|
INSTALL_TARGETS = $(BUILD_TARGETS) thpmaps
|
|
|
|
LIB_DIR = ../lib/api
|
|
LIBS = $(LIB_DIR)/libapi.a
|
|
|
|
CFLAGS += -Wall -Wextra -I../lib/ -pthread
|
|
LDFLAGS += $(LIBS) -pthread
|
|
|
|
all: $(BUILD_TARGETS)
|
|
|
|
$(BUILD_TARGETS): $(LIBS)
|
|
|
|
$(LIBS):
|
|
make -C $(LIB_DIR)
|
|
|
|
%: %.c
|
|
$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
|
|
|
|
clean:
|
|
$(RM) page-types slabinfo page_owner_sort page_owner_filter thp_swap_allocator_test
|
|
make -C $(LIB_DIR) clean
|
|
|
|
sbindir ?= /usr/sbin
|
|
|
|
install: all
|
|
install -d $(DESTDIR)$(sbindir)
|
|
install -m 755 -p $(INSTALL_TARGETS) $(DESTDIR)$(sbindir)
|