lkml.org 
[lkml]   [2021]   [Oct]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH v2 53/53] fscache, cachefiles: Display stat of culling events
From
Date
Add a stat counter of culling events whereby the cache backend culls a file
to make space (when asked by cachefilesd in this case) and display in
/proc/fs/fscache/stats.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: linux-cachefs@redhat.com
---

fs/cachefiles/namei.c | 1 +
fs/fscache/stats.c | 7 +++++--
include/linux/fscache-cache.h | 4 +++-
3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
index 9b0a14e37cfa..a118074826cd 100644
--- a/fs/cachefiles/namei.c
+++ b/fs/cachefiles/namei.c
@@ -661,6 +661,7 @@ int cachefiles_cull(struct cachefiles_cache *cache, struct dentry *dir,
goto error_unlock;

/* actually remove the victim (drops the dir mutex) */
+ fscache_count_culled();
_debug("bury");

ret = cachefiles_bury_object(cache, NULL, dir, victim,
diff --git a/fs/fscache/stats.c b/fs/fscache/stats.c
index d34fb6e91d57..ee1b611e365d 100644
--- a/fs/fscache/stats.c
+++ b/fs/fscache/stats.c
@@ -48,6 +48,8 @@ atomic_t fscache_n_no_write_space;
EXPORT_SYMBOL(fscache_n_no_write_space);
atomic_t fscache_n_no_create_space;
EXPORT_SYMBOL(fscache_n_no_create_space);
+atomic_t fscache_n_culled;
+EXPORT_SYMBOL(fscache_n_culled);

/*
* display the general statistics
@@ -90,9 +92,10 @@ int fscache_stats_show(struct seq_file *m, void *v)
atomic_read(&fscache_n_relinquishes_retire),
atomic_read(&fscache_n_relinquishes_dropped));

- seq_printf(m, "NoSpace: nwr=%u ncr=%u\n",
+ seq_printf(m, "NoSpace: nwr=%u ncr=%u cull=%u\n",
atomic_read(&fscache_n_no_write_space),
- atomic_read(&fscache_n_no_create_space));
+ atomic_read(&fscache_n_no_create_space),
+ atomic_read(&fscache_n_culled));

seq_printf(m, "IO : rd=%u wr=%u\n",
atomic_read(&fscache_n_read),
diff --git a/include/linux/fscache-cache.h b/include/linux/fscache-cache.h
index 7b3225c6c22f..e12f4163af61 100644
--- a/include/linux/fscache-cache.h
+++ b/include/linux/fscache-cache.h
@@ -181,15 +181,17 @@ extern atomic_t fscache_n_read;
extern atomic_t fscache_n_write;
extern atomic_t fscache_n_no_write_space;
extern atomic_t fscache_n_no_create_space;
+extern atomic_t fscache_n_culled;
#define fscache_count_read() atomic_inc(&fscache_n_read)
#define fscache_count_write() atomic_inc(&fscache_n_write)
#define fscache_count_no_write_space() atomic_inc(&fscache_n_no_write_space)
#define fscache_count_no_create_space() atomic_inc(&fscache_n_no_create_space)
+#define fscache_count_culled() atomic_inc(&fscache_n_culled)
#else
#define fscache_count_read() do {} while(0)
#define fscache_count_write() do {} while(0)
#define fscache_count_no_write_space() do {} while(0)
-#define fscache_count_no_create_space() do {} while(0)
+#define fscache_count_culled() do {} while(0)
#endif

extern struct workqueue_struct *fscache_wq;

\
 
 \ /
  Last update: 2021-10-22 21:12    [W:0.258 / U:0.256 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site