Re: [PATCH 1/2] f2fs: pass down write hints to block layer for bufferd write

From: Hyunchul Lee
Date: Fri Dec 01 2017 - 03:28:29 EST


Hi Chao,

On 11/30/2017 04:06 PM, Chao Yu wrote:
> Hi Hyunchul,
>
> On 2017/11/28 8:23, Hyunchul Lee wrote:
>> From: Hyunchul Lee <cheol.lee@xxxxxxx>
>>
>> This implements which hint is passed down to block layer
>> for datas from the specific segment type.
>>
>> segment type hints
>> ------------ -----
>> COLD_NODE & COLD_DATA WRITE_LIFE_EXTREME
>> WARM_DATA WRITE_LIFE_NONE
>> HOT_NODE & WARM_NODE WRITE_LIFE_LONG
>> HOT_DATA WRITE_LIFE_MEDIUM
>> META_DATA WRITE_LIFE_SHORT
>
> Just noticed, if our user do not give the hint via ioctl, f2fs can
> provider hint to lower layer according to hot/cold separation ability,
> it will be okay. But once user give his hint which may be more accurate
> than filesystem, hint converted by f2fs may be wrong.
>
> So what do you think of adding an option to control whether filesystem
> can convert hint user given?
>

I think it is okay for LIFE_SHORT and LIFE_EXTREME. because they are
converted to different hints.

file hint segment type io hint
--------- ------------ -------
LIFE_SHORT HOT_DATA LIFE_MEDIUM
LIFE_MEDIUM WARM_DATA LIFE_NONE
LIFE_LONG WARM_DATA LIFE_NONE
LIFE_EXTREME COLD_DATA LIFE_EXTREME

the problem is that LIFE_MEDIUM and LIFE_LONG are converted to
the same hint, LIFE_NONE. I am not sure that the seperation between
LIFE_MEDIUM and LIFE_LONG is really needed. Because I guess that the
difference between them is a little ambigous for users, and if WARM_DATA
segment has two different hints, it can makes GC non-efficient.

I wonder your thought about this.

Thanks.

> Thanks,
>
>