On 12/16, Chao Yu wrote:
> On 12/16/25 08:50, Jaegeuk Kim wrote:
> > 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.
>
> Okay, but it seems later we will print "mlock time = 0" which doesn't match
> the code?
It may be okay to show the same time on IO and mlock?
>
> Thanks,
>
> >
> >>
> >>> + 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