Hi Yangtao,

I remember hearing that f2fs can perform relatively poorly under io_uring,
nice find.

I suggest rewriting the commit message though. From the looks of it, it
might suggest that FMODE_BUF_RASYNC is a magic flag that automatically
improves performance that can be enabled willy nilly.

How about something like:

f2fs uses generic_file_buffered_read(), which supports buffered async
reads since commit 1a0a7853b901 ("mm: support async buffered reads in
generic_file_buffered_read()").

Match other file-systems and enable it. The read performance has been
greatly improved under io_uring:

    167M/s -> 234M/s, Increase ratio by 40%

Test w/:
    ./fio --name=onessd --filename=/data/test/local/io_uring_test
    --size=256M --rw=randread --bs=4k --direct=0 --overwrite=0
    --numjobs=1 --iodepth=1 --time_based=0 --runtime=10
    --ioengine=io_uring --registerfiles --fixedbufs
    --gtod_reduce=1 --group_reporting --sqthread_poll=1

On Wed, May 31, 2023 at 10:01 PM Yangtao Li via Linux-f2fs-devel
<[email protected]> wrote:
>
> After enabling this feature, the read performance has been greatly
> improved:
>
>     167M/s -> 234M/s, Increase ratio by 40%
>
> Test w/:
>     ./fio --name=onessd --filename=/data/test/local/io_uring_test
>     --size=256M --rw=randread --bs=4k --direct=0 --overwrite=0
>     --numjobs=1 --iodepth=1 --time_based=0 --runtime=10
>     --ioengine=io_uring --registerfiles --fixedbufs
>     --gtod_reduce=1 --group_reporting --sqthread_poll=1
>
> Signed-off-by: Lu Hongfei <[email protected]>
> Signed-off-by: Yangtao Li <[email protected]>
> ---
>  fs/f2fs/file.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
> index 015ed274dc31..23c68ee946e5 100644
> --- a/fs/f2fs/file.c
> +++ b/fs/f2fs/file.c
> @@ -546,7 +546,7 @@ static int f2fs_file_open(struct inode *inode, struct 
> file *filp)
>         if (err)
>                 return err;
>
> -       filp->f_mode |= FMODE_NOWAIT;
> +       filp->f_mode |= FMODE_NOWAIT | FMODE_BUF_RASYNC;
>
>         return dquot_file_open(inode, filp);
>  }
> --
> 2.39.0
>
>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel


_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to