All of lore.kernel.org
 help / color / mirror / Atom feed
* [to-be-updated] mmpage_owner-filter-out-stacks-by-a-threshold-counter.patch removed from -mm tree
@ 2023-06-12 20:45 Andrew Morton
  0 siblings, 0 replies; only message in thread
From: Andrew Morton @ 2023-06-12 20:45 UTC (permalink / raw)
  To: mm-commits, vbabka, surenb, mhocko, longman, glider, elver,
	edumazet, andreyknvl, osalvador, akpm


The quilt patch titled
     Subject: mm,page_owner: filter out stacks by a threshold counter
has been removed from the -mm tree.  Its filename was
     mmpage_owner-filter-out-stacks-by-a-threshold-counter.patch

This patch was dropped because an updated version will be merged

------------------------------------------------------
From: Oscar Salvador <osalvador@suse.de>
Subject: mm,page_owner: filter out stacks by a threshold counter
Date: Tue, 16 May 2023 20:25:37 +0200

We want to be able to filter out the output on a threshold basis, in this
way we can get rid of a lot of noise and focus only on those stacks which
have an allegedly high counter.

We can control the threshold value by a new file called
'page_owner_threshold', which is 0 by default.

[akpm@linux-foundation.org: make page_owner_threshold_get() and page_owner_threshold_set() static]
Link: https://lkml.kernel.org/r/20230516182537.3139-4-osalvador@suse.de
Signed-off-by: Oscar Salvador <osalvador@suse.de>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Marco Elver <elver@google.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Waiman Long <longman@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 lib/stackdepot.c |    6 +++++-
 mm/page_owner.c  |   21 +++++++++++++++++++++
 2 files changed, 26 insertions(+), 1 deletion(-)

--- a/lib/stackdepot.c~mmpage_owner-filter-out-stacks-by-a-threshold-counter
+++ a/lib/stackdepot.c
@@ -488,6 +488,9 @@ static struct stack_record *stack_depot_
 }
 
 #ifdef CONFIG_PAGE_OWNER
+
+extern unsigned long page_owner_stack_threshold;
+
 void *stack_start(struct seq_file *m, loff_t *ppos)
 {
 	unsigned long *table = m->private;
@@ -542,7 +545,8 @@ int stack_print(struct seq_file *m, void
 	struct stack_record *stack = v;
 
 	if (stack->size <= 0 || stack->size > PAGE_SIZE ||
-	    stack->handle.valid != 1 || refcount_read(&stack->count) < 1)
+	    stack->handle.valid != 1 ||
+	    refcount_read(&stack->count) < page_owner_stack_threshold)
 		return 0;
 
 	buf = kzalloc(PAGE_SIZE, GFP_KERNEL);
--- a/mm/page_owner.c~mmpage_owner-filter-out-stacks-by-a-threshold-counter
+++ a/mm/page_owner.c
@@ -743,6 +743,23 @@ const struct file_operations page_owner_
 	.release        = seq_release,
 };
 
+unsigned long page_owner_stack_threshold;
+
+static int page_owner_threshold_get(void *data, u64 *val)
+{
+	*val = page_owner_stack_threshold;
+	return 0;
+}
+
+static int page_owner_threshold_set(void *data, u64 val)
+{
+	page_owner_stack_threshold = val;
+	return 0;
+}
+
+DEFINE_SIMPLE_ATTRIBUTE(proc_page_owner_threshold, &page_owner_threshold_get,
+			&page_owner_threshold_set, "%llu");
+
 static int __init pageowner_init(void)
 {
 	if (!static_branch_unlikely(&page_owner_inited)) {
@@ -755,6 +772,10 @@ static int __init pageowner_init(void)
 
 	debugfs_create_file("page_owner_stacks", 0400, NULL, NULL,
 			     &page_owner_stack_operations);
+	debugfs_create_file("page_owner_threshold", 0600, NULL, NULL,
+			    &proc_page_owner_threshold);
+
+	page_owner_stack_threshold = 0;
 
 	return 0;
 }
_

Patches currently in -mm which might be from osalvador@suse.de are



^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-06-12 20:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-12 20:45 [to-be-updated] mmpage_owner-filter-out-stacks-by-a-threshold-counter.patch removed from -mm tree Andrew Morton

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.