* [PATCH RFC] btrfs: sysfs: introduce <uuid>/debug/cleaner_trigger
@ 2022-01-21 7:13 Qu Wenruo
0 siblings, 0 replies; only message in thread
From: Qu Wenruo @ 2022-01-21 7:13 UTC (permalink / raw)
To: linux-btrfs
Since there is no existing quick way to trigger cleaner to do
cleanup/autodefrag, here we introduce a new sysfs file at:
/sys/fs/btrfs/<uuid>/debug/cleaner_trigger
Any write into that file will wake up cleaner_kthread.
This allows us to have a fast and relieable way to trigger cleaner to
test autodefrag.
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
There seems to be no way to initiate the cleaner thread to run.
With this patch and previous io_accounting patch, I can now trigger an
autodefrag run and compare io_accounting to get how many bytes are
re-written (aka, defragged).
Although so far I still can't craft a minimal script to trigger more IO
than expected.
---
fs/btrfs/sysfs.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
index dfdef93bdeab..a20e6bd82d8d 100644
--- a/fs/btrfs/sysfs.c
+++ b/fs/btrfs/sysfs.c
@@ -577,6 +577,17 @@ static ssize_t btrfs_discard_max_discard_size_store(struct kobject *kobj,
BTRFS_ATTR_RW(discard, max_discard_size, btrfs_discard_max_discard_size_show,
btrfs_discard_max_discard_size_store);
+static ssize_t wake_up_cleaner(struct kobject *kobj, struct kobj_attribute *a,
+ const char *buf, size_t count)
+{
+ struct btrfs_fs_info *fs_info = to_fs_info(kobj->parent);
+
+ wake_up_process(fs_info->cleaner_kthread);
+ return count;
+}
+
+BTRFS_ATTR_RW(debug_mount, cleaner_trigger, NULL, wake_up_cleaner);
+
/*
* Per-filesystem debugging of discard (when mounted with discard=async).
*
@@ -600,6 +611,7 @@ static const struct attribute *discard_debug_attrs[] = {
* Path: /sys/fs/btrfs/UUID/debug/
*/
static const struct attribute *btrfs_debug_mount_attrs[] = {
+ BTRFS_ATTR_PTR(debug_mount, cleaner_trigger),
NULL,
};
--
2.34.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2022-01-21 7:13 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-21 7:13 [PATCH RFC] btrfs: sysfs: introduce <uuid>/debug/cleaner_trigger Qu Wenruo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).