Re: [vfs/vfs.all PATCH] writeback: use round_jiffies_relative for dirtytime_work
From: Jan Kara
Date: Tue Jan 13 2026 - 07:12:41 EST
On Tue 13-01-26 16:26:14, Zhao Mengmeng wrote:
> From: Zhao Mengmeng <zhaomengmeng@xxxxxxxxxx>
>
> The dirtytime_work is a background housekeeping task that flushes dirty
> inodes, using round_jiffies_relative() will allow kernel to batch this
> work with other aligned system tasks, reducing power consumption.
>
> Signed-off-by: Zhao Mengmeng <zhaomengmeng@xxxxxxxxxx>
Makes sense. Feel free to add:
Reviewed-by: Jan Kara <jack@xxxxxxx>
Honza
> ---
> fs/fs-writeback.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
> index ea95f527aace..a32d354152d0 100644
> --- a/fs/fs-writeback.c
> +++ b/fs/fs-writeback.c
> @@ -2504,7 +2504,8 @@ static void wakeup_dirtytime_writeback(struct work_struct *w)
> }
> rcu_read_unlock();
> if (dirtytime_expire_interval)
> - schedule_delayed_work(&dirtytime_work, dirtytime_expire_interval * HZ);
> + schedule_delayed_work(&dirtytime_work,
> + round_jiffies_relative(dirtytime_expire_interval * HZ));
> }
>
> static int dirtytime_interval_handler(const struct ctl_table *table, int write,
> @@ -2536,7 +2537,8 @@ static const struct ctl_table vm_fs_writeback_table[] = {
> static int __init start_dirtytime_writeback(void)
> {
> if (dirtytime_expire_interval)
> - schedule_delayed_work(&dirtytime_work, dirtytime_expire_interval * HZ);
> + schedule_delayed_work(&dirtytime_work,
> + round_jiffies_relative(dirtytime_expire_interval * HZ));
> register_sysctl_init("vm", vm_fs_writeback_table);
> return 0;
> }
> --
> 2.43.0
>
--
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR