summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2018-02-15 11:43:29 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2018-02-15 11:48:52 -0500
commit01226ed90cc4526d02b4eb27810c80e0996e4a97 (patch)
tree24bdd298717a0392ba345276bdc2af90025d53cd
parentdc8aadbf5948ee936dd5e332961f153f6aea6f67 (diff)
bcachefs: make writeback throttling limit configurable
-rw-r--r--fs/bcachefs/sysfs.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/bcachefs/sysfs.c b/fs/bcachefs/sysfs.c
index 597e1f02bd6a..2e958a8ef381 100644
--- a/fs/bcachefs/sysfs.c
+++ b/fs/bcachefs/sysfs.c
@@ -164,6 +164,8 @@ read_attribute(extent_migrate_raced);
rw_attribute(journal_write_delay_ms);
rw_attribute(journal_reclaim_delay_ms);
+rw_attribute(writeback_pages_max);
+
rw_attribute(discard);
rw_attribute(cache_replacement_policy);
@@ -310,6 +312,8 @@ SHOW(bch2_fs)
sysfs_print(journal_write_delay_ms, c->journal.write_delay_ms);
sysfs_print(journal_reclaim_delay_ms, c->journal.reclaim_delay_ms);
+ sysfs_print(writeback_pages_max, c->writeback_pages_max);
+
sysfs_print(block_size, block_bytes(c));
sysfs_print(btree_node_size, btree_bytes(c));
sysfs_hprint(btree_cache_size, bch2_btree_cache_size(c));
@@ -370,6 +374,9 @@ STORE(__bch2_fs)
sysfs_strtoul(journal_write_delay_ms, c->journal.write_delay_ms);
sysfs_strtoul(journal_reclaim_delay_ms, c->journal.reclaim_delay_ms);
+ if (attr == &sysfs_writeback_pages_max)
+ c->writeback_pages_max = strtoul_restrict_or_return(buf, 1, UINT_MAX);
+
if (attr == &sysfs_btree_gc_periodic) {
ssize_t ret = strtoul_safe(buf, c->btree_gc_periodic)
?: (ssize_t) size;
@@ -459,6 +466,8 @@ struct attribute *bch2_fs_files[] = {
&sysfs_journal_write_delay_ms,
&sysfs_journal_reclaim_delay_ms,
+ &sysfs_writeback_pages_max,
+
&sysfs_tiering_percent,
&sysfs_compression_stats,