On 2021/1/14 14:23, Daeho Jeong wrote:
From: Daeho Jeong <[email protected]>

Added "ckpt_thread_ioprio" sysfs node to give a way to change checkpoint
merge daemon's io priority. Its default value is "be,3", which means
"BE" I/O class and I/O priority "3". We can select the class between "rt"
and "be", and set the I/O priority within valid range of it.
"," delimiter is necessary in between I/O class and priority number.

Signed-off-by: Daeho Jeong <[email protected]>
---
v2:
- adapt to inlining ckpt_req_control of f2fs_sb_info
---
  Documentation/ABI/testing/sysfs-fs-f2fs |  8 ++++
  fs/f2fs/checkpoint.c                    |  2 +-
  fs/f2fs/f2fs.h                          |  1 +
  fs/f2fs/sysfs.c                         | 51 +++++++++++++++++++++++++
  4 files changed, 61 insertions(+), 1 deletion(-)

diff --git a/Documentation/ABI/testing/sysfs-fs-f2fs 
b/Documentation/ABI/testing/sysfs-fs-f2fs
index 3dfee94e0618..0c48b2e7dfd4 100644
--- a/Documentation/ABI/testing/sysfs-fs-f2fs
+++ b/Documentation/ABI/testing/sysfs-fs-f2fs
@@ -377,3 +377,11 @@ Description:       This gives a control to limit the bio 
size in f2fs.
                Default is zero, which will follow underlying block layer limit,
                whereas, if it has a certain bytes value, f2fs won't submit a
                bio larger than that size.
+What:          /sys/fs/f2fs/<disk>/ckpt_thread_ioprio
+Date:          January 2021
+Contact:       "Daeho Jeong" <[email protected]>
+Description:   Give a way to change checkpoint merge daemon's io priority.
+               Its default value is "be,3", which means "BE" I/O class and
+               I/O priority "3". We can select the class between "rt" and "be",
+               and set the I/O priority within valid range of it. "," delimiter
+               is necessary in between I/O class and priority number.
diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
index e0668cec3b80..62bd6f449bb7 100644
--- a/fs/f2fs/checkpoint.c
+++ b/fs/f2fs/checkpoint.c
@@ -1840,7 +1840,7 @@ int f2fs_start_ckpt_thread(struct f2fs_sb_info *sbi)
        if (IS_ERR(cprc->f2fs_issue_ckpt))
                return PTR_ERR(cprc->f2fs_issue_ckpt);
- set_task_ioprio(cprc->f2fs_issue_ckpt, DEFAULT_CHECKPOINT_IOPRIO);
+       set_task_ioprio(cprc->f2fs_issue_ckpt, cprc->ckpt_thread_ioprio);

Where do we set default value of cprc->ckpt_thread_ioprio? I guess it should
be f2fs_init_ckpt_req_control()?

Thanks,

Reply via email to