On 12/15, Chao Yu wrote:
> 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();
This is when IO happens, so IO.
>
> > + 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