Ditto, need to manual entry.

On 9/18/25 12:53, Jaegeuk Kim via Linux-f2fs-devel wrote:
> It only measures the read performance.
> 
> Signed-off-by: Jaegeuk Kim <[email protected]>
> ---
>  tools/f2fs_io/f2fs_io.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/f2fs_io/f2fs_io.c b/tools/f2fs_io/f2fs_io.c
> index 2d64eda81706..2ed9cb4184b8 100644
> --- a/tools/f2fs_io/f2fs_io.c
> +++ b/tools/f2fs_io/f2fs_io.c
> @@ -24,6 +24,8 @@
>  #include <linux/fs.h>
>  #include <signal.h>
>  #include <stdarg.h>
> +#include <sys/uio.h>
> +#include <stdarg.h>
>  #include <stdbool.h>
>  #include <stdio.h>
>  #include <stdlib.h>
> @@ -929,6 +931,7 @@ static void do_write_advice(int argc, char **argv, const 
> struct cmd_desc *cmd)
>  "Read data in file_path and print nbytes\n"          \
>  "IO can be\n"                                                \
>  "  buffered : buffered IO\n"                         \
> +"  dontcache: buffered IO + dontcache\n"             \
>  "  dio      : direct IO\n"                           \
>  "  mmap     : mmap IO\n"                             \
>  "  mlock    : mmap + mlock\n"                                \
> @@ -948,6 +951,7 @@ static void do_read(int argc, char **argv, const struct 
> cmd_desc *cmd)
>       int flags = 0;
>       int do_mmap = 0;
>       int do_mlock = 0;
> +     int do_dontcache = 0;
>       int fd, advice;
>  
>       if (argc != 8) {
> @@ -972,6 +976,8 @@ static void do_read(int argc, char **argv, const struct 
> cmd_desc *cmd)
>               do_mmap = 1;
>       else if (!strcmp(argv[4], "mlock"))
>               do_mlock = 1;
> +     else if (!strcmp(argv[4], "dontcache"))
> +             do_dontcache = 1;
>       else if (strcmp(argv[4], "buffered"))
>               die("Wrong IO type");
>  
> @@ -1016,7 +1022,12 @@ static void do_read(int argc, char **argv, const 
> struct cmd_desc *cmd)
>               read_cnt = count * buf_size;
>       } else {
>               for (i = 0; i < count; i++) {
> -                     ret = pread(fd, buf, buf_size, offset + buf_size * i);
> +                     if (!do_dontcache) {
> +                             ret = pread(fd, buf, buf_size, offset + 
> buf_size * i);
> +                     } else {
> +                             struct iovec iov = { .iov_base = buf, .iov_len 
> = buf_size };
> +                             ret = preadv2(fd, &iov, 1, offset + buf_size * 
> i, RWF_DONTCACHE);
> +                     }
>                       if (ret != buf_size) {
>                               printf("pread expected: %"PRIu64", readed: 
> %"PRIu64"\n",
>                                               buf_size, ret);



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

Reply via email to