]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
writeback: use round_jiffies_relative for dirtytime_work
authorZhao Mengmeng <zhaomengmeng@kylinos.cn>
Tue, 13 Jan 2026 08:26:14 +0000 (16:26 +0800)
committerChristian Brauner <brauner@kernel.org>
Wed, 14 Jan 2026 16:11:43 +0000 (17:11 +0100)
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@kylinos.cn>
Link: https://patch.msgid.link/20260113082614.231580-1-zhaomzhao@126.com
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/fs-writeback.c

index cd21c74cd0e52358e5bb25acc29476fc116597f6..f06c47130a93a5d4390399ca3cb407230fc2585b 100644 (file)
@@ -2493,7 +2493,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,
@@ -2525,7 +2526,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;
 }