[LTP] [PATCH v1] readahead02.c: Use fsync instead of sync
Richard Palethorpe
rpalethorpe@suse.de
Mon Jan 16 16:08:44 CET 2023
Hello,
Wei Gao via ltp <ltp@lists.linux.it> writes:
> Use fsync on test file instead of sync should faster than syncing
> whole system.
The test completes in less than a second in OpenQA. We don't want to
risk introducing a regression or spend time reviewing changes unless the
performance improvement solves a timeout.
I suggest you convert dup06 to the new API (for example) or investigate
a test failure.
>
> Signed-off-by: Wei Gao <wegao@suse.com>
> ---
> .../kernel/syscalls/readahead/readahead02.c | 17 +++++++++++++----
> 1 file changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/readahead/readahead02.c b/testcases/kernel/syscalls/readahead/readahead02.c
> index 7acf4bb18..e04046bc3 100644
> --- a/testcases/kernel/syscalls/readahead/readahead02.c
> +++ b/testcases/kernel/syscalls/readahead/readahead02.c
> @@ -99,6 +99,17 @@ static void drop_caches(void)
> SAFE_FILE_PRINTF(DROP_CACHES_FNAME, "1");
> }
>
> +static void sync_drop_caches(void)
> +{
> + int fd;
> +
> + fd = SAFE_OPEN(testfile, O_RDONLY);
> + if (fsync(fd) == -1)
> + tst_brk(TBROK | TERRNO, "fsync()");
> + SAFE_CLOSE(fd);
> + drop_caches();
> +}
> +
> static unsigned long get_bytes_read(void)
> {
> unsigned long ret;
> @@ -233,8 +244,7 @@ static void test_readahead(unsigned int n)
> read_testfile(tc, 0, testfile, testfile_size, &read_bytes, &usec,
> &cached);
> cached_high = get_cached_size();
> - sync();
> - drop_caches();
> + sync_drop_caches();
> cached_low = get_cached_size();
> cached_max = MAX(cached_max, cached_high - cached_low);
>
> @@ -246,8 +256,7 @@ static void test_readahead(unsigned int n)
> else
> cached = 0;
>
> - sync();
> - drop_caches();
> + sync_drop_caches();
> cached_low = get_cached_size();
> tst_res(TINFO, "read_testfile(1)");
> ret = read_testfile(tc, 1, testfile, testfile_size, &read_bytes_ra,
> --
> 2.35.3
--
Thank you,
Richard.
More information about the ltp
mailing list