Re: [f2fs-dev] [PATCH v2] f2fs: introduce fragment allocation mode mount option

From: Daeho Jeong
Date: Mon Aug 30 2021 - 13:28:00 EST


On Fri, Aug 27, 2021 at 5:43 PM Chao Yu <chao@xxxxxxxxxx> wrote:
>
> On 2021/8/27 23:22, Daeho Jeong wrote:
> >> I'd like to add a fixed chunk/hole fragmentation mode in addition, then
> >> userspace can control the fragmented chunk/hole with fixed size.
> >>
> >> How do you think of renaming "fragment:block" to "fragment:rand_block", and
> >> then I can add "fragment:fixed_block" option and its logic in addition?
> >>
> >
> > The reason I added the randomness on these values is the segment
> > selection in SSR mode.
> > If all the segments have the same free block counts, f2fs will
> > allocate a new segment sequentially in SSR.
>
> I'm fine with this, since test program can customize different fragment
> degree on segments by setting different chunk/hole size.
>

Got it. Sounds good~

> > This was what I didn't want. Plus, in the real world, the size of hole
> > and chunk will be different in different segments.
> >
> > But, if you think we need this "fragment:fixed_block" mode, I am happy
> > to have it. :)
>
> Thanks a lot. :)
>
> As you said it needs to be aligned to real world fragmentation, I notice that:
> with this way, we can't simulate similar fragment in FTL, due to its page
> mapping architecture, all fragmented data/node in filesystem will be written
> sequentially into its blocks.
>
> In order to simulate fragment in FTL, we need to:
> - write data (chunk size) with dummy pages (hole size) to devices
> - issue discards on those holes
>
> I guess fragmenting device (erase blocks) at the same time wouldn't be
> original intention of this patch, right?
>
> Thanks,
>

Yes, I just meant filesystem fragmentation as I wrote in the comment.

> >
> >> Do we need to consider multiple thread scenario? in such case,
> >> .fragment_remained_chunk may update randomly.
> >>
> >> In addition, multiple log headers share one .fragment_remained_chunk,
> >> it may cause unexpected result, it means there may be continuous holes
> >> or chunks in locality due to swithing between different log headers.
> >>
> >> Thanks,
> >>
> >
> > Oh, I overlooked that point. I am going to add the variable for each
> > segment as you said before.
> >
> > Thanks,
> >