mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 10:42:11 +00:00
bcachefs: copygc_enabled, rebalance_enabled now opts.h options
They can now be set at mount time Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
fc23ffb93c
commit
86066b111b
@ -1096,8 +1096,6 @@ struct bch_fs {
|
||||
u64 counters_on_mount[BCH_COUNTER_NR];
|
||||
u64 __percpu *counters;
|
||||
|
||||
unsigned copy_gc_enabled:1;
|
||||
|
||||
struct bch2_time_stats times[BCH_TIME_STAT_NR];
|
||||
|
||||
struct btree_transaction_stats btree_transaction_stats[BCH_TRANSACTIONS_NR];
|
||||
|
@ -350,9 +350,9 @@ static int bch2_copygc_thread(void *arg)
|
||||
bch2_trans_unlock_long(ctxt.trans);
|
||||
cond_resched();
|
||||
|
||||
if (!c->copy_gc_enabled) {
|
||||
if (!c->opts.copygc_enabled) {
|
||||
move_buckets_wait(&ctxt, buckets, true);
|
||||
kthread_wait_freezable(c->copy_gc_enabled ||
|
||||
kthread_wait_freezable(c->opts.copygc_enabled ||
|
||||
kthread_should_stop());
|
||||
}
|
||||
|
||||
|
@ -473,6 +473,18 @@ enum fsck_err_opts {
|
||||
BCH2_NO_SB_OPT, true, \
|
||||
NULL, "Enable nocow mode: enables runtime locking in\n"\
|
||||
"data move path needed if nocow will ever be in use\n")\
|
||||
x(copygc_enabled, u8, \
|
||||
OPT_FS|OPT_MOUNT, \
|
||||
OPT_BOOL(), \
|
||||
BCH2_NO_SB_OPT, true, \
|
||||
NULL, "Enable copygc: disable for debugging, or to\n"\
|
||||
"quiet the system when doing performance testing\n")\
|
||||
x(rebalance_enabled, u8, \
|
||||
OPT_FS|OPT_MOUNT, \
|
||||
OPT_BOOL(), \
|
||||
BCH2_NO_SB_OPT, true, \
|
||||
NULL, "Enable rebalance: disable for debugging, or to\n"\
|
||||
"quiet the system when doing performance testing\n")\
|
||||
x(no_data_io, u8, \
|
||||
OPT_MOUNT, \
|
||||
OPT_BOOL(), \
|
||||
|
@ -338,9 +338,9 @@ static int do_rebalance(struct moving_context *ctxt)
|
||||
BTREE_ITER_all_snapshots);
|
||||
|
||||
while (!bch2_move_ratelimit(ctxt)) {
|
||||
if (!r->enabled) {
|
||||
if (!c->opts.rebalance_enabled) {
|
||||
bch2_moving_ctxt_flush_all(ctxt);
|
||||
kthread_wait_freezable(r->enabled ||
|
||||
kthread_wait_freezable(c->opts.rebalance_enabled ||
|
||||
kthread_should_stop());
|
||||
}
|
||||
|
||||
|
@ -30,8 +30,6 @@ struct bch_fs_rebalance {
|
||||
struct bbpos scan_start;
|
||||
struct bbpos scan_end;
|
||||
struct bch_move_stats scan_stats;
|
||||
|
||||
unsigned enabled:1;
|
||||
};
|
||||
|
||||
#endif /* _BCACHEFS_REBALANCE_TYPES_H */
|
||||
|
@ -810,9 +810,6 @@ static struct bch_fs *bch2_fs_alloc(struct bch_sb *sb, struct bch_opts opts)
|
||||
INIT_LIST_HEAD(&c->vfs_inodes_list);
|
||||
mutex_init(&c->vfs_inodes_lock);
|
||||
|
||||
c->copy_gc_enabled = 1;
|
||||
c->rebalance.enabled = 1;
|
||||
|
||||
c->journal.flush_write_time = &c->times[BCH_TIME_journal_flush_write];
|
||||
c->journal.noflush_write_time = &c->times[BCH_TIME_journal_noflush_write];
|
||||
c->journal.flush_seq_time = &c->times[BCH_TIME_journal_flush_seq];
|
||||
|
@ -213,10 +213,8 @@ BCH_PERSISTENT_COUNTERS()
|
||||
rw_attribute(discard);
|
||||
rw_attribute(label);
|
||||
|
||||
rw_attribute(copy_gc_enabled);
|
||||
read_attribute(copy_gc_wait);
|
||||
|
||||
rw_attribute(rebalance_enabled);
|
||||
sysfs_pd_controller_attribute(rebalance);
|
||||
read_attribute(rebalance_status);
|
||||
|
||||
@ -340,9 +338,6 @@ SHOW(bch2_fs)
|
||||
if (attr == &sysfs_gc_gens_pos)
|
||||
bch2_gc_gens_pos_to_text(out, c);
|
||||
|
||||
sysfs_printf(copy_gc_enabled, "%i", c->copy_gc_enabled);
|
||||
|
||||
sysfs_printf(rebalance_enabled, "%i", c->rebalance.enabled);
|
||||
sysfs_pd_controller_show(rebalance, &c->rebalance.pd); /* XXX */
|
||||
|
||||
if (attr == &sysfs_copy_gc_wait)
|
||||
@ -419,23 +414,6 @@ STORE(bch2_fs)
|
||||
{
|
||||
struct bch_fs *c = container_of(kobj, struct bch_fs, kobj);
|
||||
|
||||
if (attr == &sysfs_copy_gc_enabled) {
|
||||
ssize_t ret = strtoul_safe(buf, c->copy_gc_enabled)
|
||||
?: (ssize_t) size;
|
||||
|
||||
if (c->copygc_thread)
|
||||
wake_up_process(c->copygc_thread);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (attr == &sysfs_rebalance_enabled) {
|
||||
ssize_t ret = strtoul_safe(buf, c->rebalance.enabled)
|
||||
?: (ssize_t) size;
|
||||
|
||||
rebalance_wakeup(c);
|
||||
return ret;
|
||||
}
|
||||
|
||||
sysfs_pd_controller_store(rebalance, &c->rebalance.pd);
|
||||
|
||||
/* Debugging: */
|
||||
@ -611,10 +589,8 @@ struct attribute *bch2_fs_internal_files[] = {
|
||||
|
||||
&sysfs_gc_gens_pos,
|
||||
|
||||
&sysfs_copy_gc_enabled,
|
||||
&sysfs_copy_gc_wait,
|
||||
|
||||
&sysfs_rebalance_enabled,
|
||||
sysfs_pd_controller_files(rebalance),
|
||||
|
||||
&sysfs_moving_ctxts,
|
||||
@ -683,6 +659,13 @@ STORE(bch2_fs_opts_dir)
|
||||
(id == Opt_compression && !c->opts.background_compression)))
|
||||
bch2_set_rebalance_needs_scan(c, 0);
|
||||
|
||||
if (v && id == Opt_rebalance_enabled)
|
||||
rebalance_wakeup(c);
|
||||
|
||||
if (v && id == Opt_copygc_enabled &&
|
||||
c->copygc_thread)
|
||||
wake_up_process(c->copygc_thread);
|
||||
|
||||
ret = size;
|
||||
err:
|
||||
bch2_write_ref_put(c, BCH_WRITE_REF_sysfs);
|
||||
|
Loading…
Reference in New Issue
Block a user