On 12/12/25 08:55, Jaegeuk Kim via Linux-f2fs-devel wrote:
> Signed-off-by: Jaegeuk Kim <[email protected]>
> ---
>  tools/f2fs_io/f2fs_io.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/tools/f2fs_io/f2fs_io.c b/tools/f2fs_io/f2fs_io.c
> index 4429e0b0459c..08f3c9b79cdf 100644
> --- a/tools/f2fs_io/f2fs_io.c
> +++ b/tools/f2fs_io/f2fs_io.c
> @@ -938,6 +938,7 @@ static void do_write_advice(int argc, char **argv, const 
> struct cmd_desc *cmd)
>  "  dontcache: buffered IO + dontcache\n"             \
>  "  dio      : direct IO\n"                           \
>  "  mmap     : mmap IO\n"                             \
> +"  mlock    : mmap + mlock\n"                                \
>  "  madvise  : mmap + mlock2 + madvise\n"             \
>  "  fadvise  : mmap + fadvise + mlock\n"                      \
>  "advice can be\n"                                    \
> @@ -956,6 +957,7 @@ static void do_read(int argc, char **argv, const struct 
> cmd_desc *cmd)
>       u64 mlock_time_start = 0, mlock_time_end = 0;
>       int flags = 0;
>       int do_mmap = 0;
> +     int do_mlock = 0;
>       int do_fadvise = 0;
>       int do_madvise = 0;
>       int do_dontcache = 0;
> @@ -981,6 +983,8 @@ static void do_read(int argc, char **argv, const struct 
> cmd_desc *cmd)
>               flags |= O_DIRECT;
>       else if (!strcmp(argv[4], "mmap"))
>               do_mmap = 1;
> +     else if (!strcmp(argv[4], "mlock"))
> +             do_mlock = 1;
>       else if (!strcmp(argv[4], "madvise"))
>               do_madvise = 1;
>       else if (!strcmp(argv[4], "fadvise"))
> @@ -1027,6 +1031,18 @@ static void do_read(int argc, char **argv, const 
> struct cmd_desc *cmd)
>               mlock_time_end = get_current_us();
>               read_cnt = count * buf_size;
>               memcpy(print_buf, data, print_bytes);
> +     } else if (do_mlock) {
> +             data = mmap(NULL, count * buf_size, PROT_READ,
> +                             MAP_SHARED, fd, offset);
> +             if (data == MAP_FAILED)
> +                     die("Mmap failed");
> +
> +             io_time_start = get_current_us();

mlock_time_start = get_current_us();

> +             if (mlock(data, count * buf_size))
> +                     die_errno("mlock failed");
> +             io_time_end = get_current_us();

mlock_time_end = get_current_us();

Thanks,

> +             read_cnt = count * buf_size;
> +             memcpy(print_buf, data, print_bytes);
>       } else if (do_madvise) {
>               data = mmap(NULL, count * buf_size, PROT_READ,
>                               MAP_SHARED, fd, offset);



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

Reply via email to