linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Kent Overstreet <kent.overstreet@linux.dev>
To: linux-mm@kvack.org, linux-kernel@vger.kernel.org
Cc: Kent Overstreet <kent.overstreet@linux.dev>
Subject: [PATCH 6/7] bcachefs: shrinker.to_text() methods
Date: Wed, 22 Nov 2023 18:25:11 -0500	[thread overview]
Message-ID: <20231122232515.177833-7-kent.overstreet@linux.dev> (raw)
In-Reply-To: <20231122232515.177833-1-kent.overstreet@linux.dev>

This adds shrinker.to_text() methods for our shrinkers and hooks them up
to our existing to_text() functions.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
---
 fs/bcachefs/btree_cache.c     | 13 +++++++++++++
 fs/bcachefs/btree_key_cache.c | 14 ++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/fs/bcachefs/btree_cache.c b/fs/bcachefs/btree_cache.c
index 47e7770d0583..aab279dff944 100644
--- a/fs/bcachefs/btree_cache.c
+++ b/fs/bcachefs/btree_cache.c
@@ -13,6 +13,7 @@
 
 #include <linux/prefetch.h>
 #include <linux/sched/mm.h>
+#include <linux/seq_buf.h>
 
 const char * const bch2_btree_node_flags[] = {
 #define x(f)	#f,
@@ -392,6 +393,17 @@ static unsigned long bch2_btree_cache_count(struct shrinker *shrink,
 	return btree_cache_can_free(bc);
 }
 
+static void bch2_btree_cache_shrinker_to_text(struct seq_buf *s, struct shrinker *shrink)
+{
+	struct bch_fs *c = shrink->private_data;
+	char *cbuf;
+	size_t buflen = seq_buf_get_buf(s, &cbuf);
+	struct printbuf out = PRINTBUF_EXTERN(cbuf, buflen);
+
+	bch2_btree_cache_to_text(&out, c);
+	seq_buf_commit(s, out.pos);
+}
+
 void bch2_fs_btree_cache_exit(struct bch_fs *c)
 {
 	struct btree_cache *bc = &c->btree_cache;
@@ -478,6 +490,7 @@ int bch2_fs_btree_cache_init(struct bch_fs *c)
 	bc->shrink = shrink;
 	shrink->count_objects	= bch2_btree_cache_count;
 	shrink->scan_objects	= bch2_btree_cache_scan;
+	shrink->to_text		= bch2_btree_cache_shrinker_to_text;
 	shrink->seeks		= 4;
 	shrink->private_data	= c;
 	shrinker_register(shrink);
diff --git a/fs/bcachefs/btree_key_cache.c b/fs/bcachefs/btree_key_cache.c
index 4402cf068c56..e14e9b4cd029 100644
--- a/fs/bcachefs/btree_key_cache.c
+++ b/fs/bcachefs/btree_key_cache.c
@@ -13,6 +13,7 @@
 #include "trace.h"
 
 #include <linux/sched/mm.h>
+#include <linux/seq_buf.h>
 
 static inline bool btree_uses_pcpu_readers(enum btree_id id)
 {
@@ -1028,6 +1029,18 @@ void bch2_fs_btree_key_cache_init_early(struct btree_key_cache *c)
 	INIT_LIST_HEAD(&c->freed_nonpcpu);
 }
 
+static void bch2_btree_key_cache_shrinker_to_text(struct seq_buf *s, struct shrinker *shrink)
+{
+	struct bch_fs *c = shrink->private_data;
+	struct btree_key_cache *bc = &c->btree_key_cache;
+	char *cbuf;
+	size_t buflen = seq_buf_get_buf(s, &cbuf);
+	struct printbuf out = PRINTBUF_EXTERN(cbuf, buflen);
+
+	bch2_btree_key_cache_to_text(&out, bc);
+	seq_buf_commit(s, out.pos);
+}
+
 int bch2_fs_btree_key_cache_init(struct btree_key_cache *bc)
 {
 	struct bch_fs *c = container_of(bc, struct bch_fs, btree_key_cache);
@@ -1051,6 +1064,7 @@ int bch2_fs_btree_key_cache_init(struct btree_key_cache *bc)
 	shrink->seeks		= 0;
 	shrink->count_objects	= bch2_btree_key_cache_count;
 	shrink->scan_objects	= bch2_btree_key_cache_scan;
+	shrink->to_text		= bch2_btree_key_cache_shrinker_to_text;
 	shrink->private_data	= c;
 	shrinker_register(shrink);
 	return 0;
-- 
2.42.0



  parent reply	other threads:[~2023-11-22 23:25 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-22 23:25 [PATCH 0/7] shrinker debugging improvements Kent Overstreet
2023-11-22 23:25 ` [PATCH 1/7] seq_buf: seq_buf_human_readable_u64() Kent Overstreet
2023-11-22 23:25 ` [PATCH 2/7] mm: shrinker: Add a .to_text() method for shrinkers Kent Overstreet
     [not found]   ` <deed9bb1-02b9-4e89-895b-38a84e5a9408@gmail.com>
2023-11-23 21:24     ` Kent Overstreet
2023-11-24  3:08       ` Qi Zheng
2023-11-25  0:30         ` Kent Overstreet
2023-11-28  3:27           ` Muchun Song
2023-11-28  3:53             ` Kent Overstreet
2023-11-28  6:23               ` Qi Zheng
2023-11-29  0:34                 ` Roman Gushchin
2023-11-29  9:14                   ` Michal Hocko
2023-11-29 23:11                     ` Kent Overstreet
2023-11-30  3:09                       ` Qi Zheng
2023-11-30  3:21                         ` Kent Overstreet
2023-11-30  3:42                           ` Qi Zheng
2023-11-30  4:14                             ` Kent Overstreet
2023-11-30 19:01                           ` Roman Gushchin
2023-12-01  0:00                             ` Kent Overstreet
2023-12-01  1:18                             ` Dave Chinner
2023-12-01 20:01                               ` Roman Gushchin
2023-12-01 21:51                                 ` Kent Overstreet
2023-12-06  8:16                                 ` Dave Chinner
2023-12-06 19:13                                   ` Kent Overstreet
2023-12-09  1:44                                     ` Roman Gushchin
2023-12-09  2:04                                       ` Kent Overstreet
2023-11-30  8:14                       ` Michal Hocko
2023-12-01  1:47                         ` Kent Overstreet
2023-12-01 10:04                           ` Michal Hocko
2023-12-01 21:25                             ` Kent Overstreet
2023-12-04 10:33                               ` Michal Hocko
2023-12-04 18:15                                 ` Kent Overstreet
2023-12-05  8:49                                   ` Michal Hocko
2023-12-05 23:21                                     ` Kent Overstreet
2023-11-24 11:46   ` kernel test robot
2023-11-28 10:01   ` Michal Hocko
2023-11-28 17:48     ` Kent Overstreet
2023-11-29 16:02       ` Michal Hocko
2023-11-29 22:36         ` Kent Overstreet
2023-11-22 23:25 ` [PATCH 3/7] mm: shrinker: Add new stats for .to_text() Kent Overstreet
2023-11-22 23:25 ` [PATCH 4/7] mm: Centralize & improve oom reporting in show_mem.c Kent Overstreet
2023-11-28 10:07   ` Michal Hocko
2023-11-28 17:54     ` Kent Overstreet
2023-11-29  8:59       ` Michal Hocko
2023-11-22 23:25 ` [PATCH 5/7] mm: shrinker: Add shrinker_to_text() to debugfs interface Kent Overstreet
2023-11-22 23:25 ` Kent Overstreet [this message]
2023-11-22 23:25 ` [PATCH 7/7] bcachefs: add counters for failed shrinker reclaim Kent Overstreet
2023-11-28  9:59 ` [PATCH 0/7] shrinker debugging improvements Michal Hocko

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=20231122232515.177833-7-kent.overstreet@linux.dev \
    --to=kent.overstreet@linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox