[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <10f4898f-0b8c-4503-8620-3bb566e9a163@kernel.org>
Date: Mon, 3 Jun 2024 15:50:03 +0800
From: Chao Yu <chao@...nel.org>
To: Zhiguo Niu <niuzhiguo84@...il.com>
Cc: Zhiguo Niu <zhiguo.niu@...soc.com>, jaegeuk@...nel.org,
linux-f2fs-devel@...ts.sourceforge.net, linux-kernel@...r.kernel.org,
ke.wang@...soc.com
Subject: Re: [PATCH] f2fs: use new ioprio Macro to get ckpt thread ioprio data
On 2024/6/3 14:52, Zhiguo Niu wrote:
> On Mon, Jun 3, 2024 at 2:39 PM Chao Yu <chao@...nel.org> wrote:
>>
>> On 2024/5/31 17:10, Zhiguo Niu wrote:
>>> Use new Macro IOPRIO_PRIO_LEVEL to get ckpt thread ioprio data(level),
>>> it is more accurate and consisten with the way setting ckpt thread
>>> ioprio(IOPRIO_PRIO_VALUE(class, data)).
>>>
>>> Signed-off-by: Zhiguo Niu <zhiguo.niu@...soc.com>
>>> ---
>>> fs/f2fs/sysfs.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c
>>> index 72676c5..55d46da 100644
>>> --- a/fs/f2fs/sysfs.c
>>> +++ b/fs/f2fs/sysfs.c
>>> @@ -340,7 +340,7 @@ static ssize_t f2fs_sbi_show(struct f2fs_attr *a,
>>> if (!strcmp(a->attr.name, "ckpt_thread_ioprio")) {
>>> struct ckpt_req_control *cprc = &sbi->cprc_info;
>>> int class = IOPRIO_PRIO_CLASS(cprc->ckpt_thread_ioprio);
>>> - int data = IOPRIO_PRIO_DATA(cprc->ckpt_thread_ioprio);
>>> + int data = IOPRIO_PRIO_LEVEL(cprc->ckpt_thread_ioprio);
>>
>> So, can you please use 'level' to instead 'data' in f2fs_sbi_show() and
>> __sbi_store()?
> Hi Chao,
>
> IOPRIO_PRIO_DATA in the new kernel version includes two parts: level and hint.
> In __sbi_store, " IOPRIO_PRIO_VALUE(class, data)" is used to set ckpt
> iopriority,
> and it will pass default hint value, we just need to keep class /level right.
Zhiguo,
I think f2fs only support configuring priolevel rather than priolevel and
priohint of ckpt thread via ckpt_thread_ioprio sysfs interface, so it will
be more readable to use 'level' instead of 'data' in context of the interface,
thoughts?
Thanks,
>
> #define IOPRIO_PRIO_VALUE(prioclass, priolevel) \
> ioprio_value(prioclass, priolevel, IOPRIO_HINT_NONE)
> so i think this part is not needed to modify.
>
> thanks!
>>
>> Thanks,
>>
>>>
>>> if (class != IOPRIO_CLASS_RT && class != IOPRIO_CLASS_BE)
>>> return -EINVAL;
>>
Powered by blists - more mailing lists