Re: [PATCH] f2fs: avoid issuing small bios due to several dirty node pages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2013/1/18, Jaegeuk Kim <jaegeuk.kim@xxxxxxxxxxx>:
> 2013-01-18 (금), 17:57 +0900, Namjae Jeon:
>> 2013/1/18, Jaegeuk Kim <jaegeuk.kim@xxxxxxxxxxx>:
>> > 2013-01-18 (금), 16:58 +0900, Namjae Jeon:
>> >> 2013/1/18, Jaegeuk Kim <jaegeuk.kim@xxxxxxxxxxx>:
>> >> > If some small bios of dirty node pages are supposed to be issued
>> >> > during
>> >> > the
>> >> > sequential data writes, there-in well-produced consecutive data bios
>> >> > are
>> >> > able
>> >> > to be split by the small node bios, resulting in performance
>> >> > degradation.
>> >> > So, let's collect a number of dirty node pages until reaching a
>> >> > threshold.
>> >> > And, by default, I set the threshold as 2MB, a segment size.
>> >> >
>> >> > This improves sequential write performance on i5, 512GB SSD (830 w/
>> >> > SATA2)
>> >> > as
>> >> > follows.
>> >> > Before: 231 MB/s -> After: 255 MB/s
>> >> >
>> >> > Signed-off-by: Jaegeuk Kim <jaegeuk.kim@xxxxxxxxxxx>
>> >> > ---
>> >> >  fs/f2fs/node.c | 17 +++++++++++------
>> >> >  1 file changed, 11 insertions(+), 6 deletions(-)
>> >> >
>> >> > diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
>> >> > index f177c01..9bda63c 100644
>> >> > --- a/fs/f2fs/node.c
>> >> > +++ b/fs/f2fs/node.c
>> >> > @@ -1124,6 +1124,12 @@ static int f2fs_write_node_page(struct page
>> >> > *page,
>> >> >  	return 0;
>> >> >  }
>> >> >
>> >> > +/*
>> >> > + * It is very important to gather dirty pages and write at once, so
>> >> > that we
>> >> > can
>> >> > + * submit a big bio without interfering other data writes.
>> >> > + * Be default, 512 pages (2MB), a segment size, is quite
>> >> > reasonable.
>> >> > + */
>> >> > +#define COLLECT_DIRTY_NODES	512
>> >> Hi Jaeguek.
>> >> It is just my opinion.
>> >> One of f2fs advantages is that user can set segment size to fit own
>> >> device.
>> >> For future, Is it not good to use segment size set by user(from
>> >> superblock) instead of fixed size ?
>> >
>> > At this moment, it's very hard to change the segment size due to many
>> > hardcoded data structures such as SSA, bitmaps, etc.
>> > Instead, I proposed something like section and zone which are based on
>> > segment.
>> > But, somebody will be able to do later. :)
>> Reviewed-by: Namjae Jeon <namjae.jeon@xxxxxxxxxxx>
>> Okay, I think It is better if you add TODO comment about this to be
>> fixed by the other.
>>
>> Talk Incidentally, let me ask you other thing.
>> get_meta_page never return NULL about allocate page and readpage.
>> Is there any reason it try to infinitely retry about two case ?
>
> That is just to handle errors more easily especially for file system
> metadata operations.
> Definitely, we need to consider all the error handling codes in more
> detail by using the fault-injection facility later.
> Thanks,
Okay, I see.
Thanks!
>
> --
> Jaegeuk Kim
> Samsung
>
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux