From: Richard Palethorpe <rpalethorpe@suse.de>
To: Cyril Hrubis <chrubis@suse.cz>
Cc: ltp@lists.linux.it, automated-testing@lists.yoctoproject.org
Subject: Re: [LTP] [Automated-testing] [PATCH v2 00/30] Introduce runtime and conver tests
Date: Thu, 05 May 2022 09:13:09 +0100 [thread overview]
Message-ID: <875ymke631.fsf@suse.de> (raw)
In-Reply-To: <20220503174718.21205-1-chrubis@suse.cz>
Hello, Cyril,
"Cyril Hrubis" <chrubis@suse.cz> writes:
> This patchset introduces a concept of runtime, which is described well
> enough in the first patch of the series and converts all tests that were
> previously using timeout API to runtime API.
>
> The main change to the v1 of the patchset is that the runtime is now per
> iteration, e.g. if we run the test for all_filesystem the runtime
> applies to a single filesystem only. And at the same time the overall
> test timeout is a sum of static timeout and runtime. The static part of
> the timeout is meant to cover test teardown and any inaccuracy in the
> test runtime accounting.
>
> The patches that convert tests to runtime API fall into these classes:
>
> - fzsync tests
> - faster timeout tests
> - I/O tests
> - timer precision tests
> - oom tests
> - misc tests that run for some time (controlled by command line
> parameter)
>
> fzsync tests
> ============
>
> These tests previously defined their runtime based on scale factor that
> used slice of the default timeout (300s) for the test runtime.
>
> Now the runtime is explicitly encoded in the test, which I find much
> more user friendly because it's clear how long will the test run.
>
> faster timeout tests
> ====================
>
> There were several tests that set low timeout becuase the test may lock
> up. In these cases the timeout was simply removed because the default
> value (30s) should be small enough.
>
> I/O tests
> =========
>
> The aiodio tests were modified so that their runtime is capped to
> 30 minutes by default. That means that even on very slow machine they
> finish in a reasonable time.
>
> timer precision tests
> =====================
>
> These test simply set the test timeout to be 110% of the sum of the
> sleep_time * samples. That is to accomodate for the context switches and
> upkeeping between the calls in the timer library.
>
>
> oom tests
> =========
>
> Here we just set the .max_iteration_runtime to TST_RUNTIME_UNLIMITED,
> which has the very same effect as .timeout = -1 previously had.
>
> misc test
> =========
>
> In this case the test code was simplified quite a lot since the runtime
> is now passed in a unified way and parsed in the test library.
>
> TODO:
>
> This patchset is reasonably complete in a sense that it removes the
> timeout API at the end. Still there are a few things to consider:
>
> - is reusing the -I parameter a good idea? Wouldn't adding new parameter
> (-r) be better?
Perhaps we could deprecate -I, but convert it to use the new mechanism
while trying to keep the behaviour similar.
I'm not sure we need a global -r option, but unlike -i it's not much
effort to support. It would not surprise me if there are existing tests
which don't work with -i.
>
> - there are quite likely tests that run for more than a second or a two
> and should be made runtime aware
>
> - anything else?
>
> Cyril Hrubis (30):
> Introduce a concept of max runtime
> mtest06/mmap1: Convert to runtime
> mtest06/mmap3: Convert to runtime
> mtest01/mtest01: Convert to runtime
> cve/cve-2015-3290: Convert to runtime
> crypto/af_alg02: Convert to runtime.
> crypto/pcrypt_aead01: Convert to runtime
> syscalls/clock_gettime01: Remove useless timeout
> syscalls/fanotify22: Remove useless timeout
> syscalls/gettimeofday02: Convert to runtime.
> syscalls/inotify06: Convert to runtime.
> syscalls/inotify01: Remove now useless timeout
> syscalls/perf_event_open03: Convert to runtime
> syscalls/readv01: Remove now useless timeout
> syscalls/tgkill03: Remove now unused timeout
> syscalls/setsockopt09: Remove now useless timeout
> syscalls/userfaultfd01: Remove now useless timeout
> syscalls/move_pages12: Convert to runtime
> syscalls/rt_sigqueueinfo01: Remove now useless timeout
> mem/mallocstress: Convert to runtime
> mem/{oom,min_free_kbytes}: Convert to runtime
> crypto/af_alg02: Convert to runtime
> fuzzy_sync: Convert to runtime
> ltp-aiodio/dio_sparse,aiodio_sparse: Convert to runtime.
> ltp-aiodio/read_checkzero: Remove
> ltp-aiodio/dio_{truncate,append}: Convert to runtime
> ltp-aiodio/dio_read: Convert to runtime
> ltp-aiodio/aiodio_append: Convert to runtime
> timer_test: Convert to runtime
> tst_test: Remove timeout stubs
>
> doc/user-guide.txt | 4 +
> include/tst_fuzzy_sync.h | 19 +--
> include/tst_test.h | 31 +++-
> lib/newlib_tests/.gitignore | 5 +-
> lib/newlib_tests/test10.c | 22 ---
> lib/newlib_tests/test12.c | 21 ---
> lib/newlib_tests/test13.c | 1 -
> lib/newlib_tests/test_children_cleanup.c | 1 -
> .../{test18.c => test_runtime01.c} | 10 +-
> lib/newlib_tests/test_runtime02.c | 31 ++++
> lib/tst_test.c | 144 +++++++++++++-----
> lib/tst_timer_test.c | 12 +-
> runtest/ltp-aiodio.part4 | 2 -
> testcases/cve/cve-2015-3290.c | 8 +-
> testcases/kernel/crypto/af_alg02.c | 4 +-
> testcases/kernel/crypto/af_alg07.c | 1 +
> testcases/kernel/crypto/pcrypt_aead01.c | 3 +-
> testcases/kernel/io/ltp-aiodio/.gitignore | 1 -
> .../kernel/io/ltp-aiodio/aiodio_append.c | 25 ++-
> .../kernel/io/ltp-aiodio/aiodio_sparse.c | 26 +++-
> testcases/kernel/io/ltp-aiodio/common.h | 12 +-
> testcases/kernel/io/ltp-aiodio/dio_append.c | 4 +
> testcases/kernel/io/ltp-aiodio/dio_read.c | 9 ++
> testcases/kernel/io/ltp-aiodio/dio_sparse.c | 6 +-
> testcases/kernel/io/ltp-aiodio/dio_truncate.c | 6 +
> .../kernel/io/ltp-aiodio/read_checkzero.c | 84 ----------
> testcases/kernel/mem/mtest01/mtest01.c | 14 +-
> testcases/kernel/mem/mtest06/mmap1.c | 24 +--
> testcases/kernel/mem/mtest06/mmap3.c | 12 +-
> testcases/kernel/mem/mtest07/mallocstress.c | 11 +-
> testcases/kernel/mem/oom/oom01.c | 2 +-
> testcases/kernel/mem/oom/oom02.c | 2 +-
> testcases/kernel/mem/oom/oom03.c | 2 +-
> testcases/kernel/mem/oom/oom04.c | 2 +-
> testcases/kernel/mem/oom/oom05.c | 2 +-
> testcases/kernel/mem/thp/thp04.c | 1 +
> .../kernel/mem/tunable/min_free_kbytes.c | 2 +-
> testcases/kernel/pty/pty03.c | 2 +-
> testcases/kernel/pty/pty05.c | 1 +
> testcases/kernel/pty/pty06.c | 1 +
> testcases/kernel/pty/pty07.c | 1 +
> testcases/kernel/sound/snd_seq01.c | 2 +-
> testcases/kernel/sound/snd_timer01.c | 1 +
> testcases/kernel/syscalls/bind/bind06.c | 2 +-
> .../syscalls/clock_gettime/clock_gettime01.c | 1 -
> .../kernel/syscalls/fanotify/fanotify22.c | 1 -
> .../syscalls/gettimeofday/gettimeofday02.c | 15 +-
> testcases/kernel/syscalls/inotify/inotify06.c | 7 +-
> testcases/kernel/syscalls/inotify/inotify09.c | 1 +
> testcases/kernel/syscalls/inotify/inotify11.c | 1 -
> .../kernel/syscalls/ipc/shmctl/shmctl05.c | 2 +-
> .../kernel/syscalls/move_pages/move_pages12.c | 4 +-
> .../perf_event_open/perf_event_open03.c | 15 +-
> testcases/kernel/syscalls/readv/readv01.c | 1 -
> .../rt_sigqueueinfo/rt_sigqueueinfo01.c | 1 -
> testcases/kernel/syscalls/sendmsg/sendmsg03.c | 1 +
> .../kernel/syscalls/setsockopt/setsockopt06.c | 2 +-
> .../kernel/syscalls/setsockopt/setsockopt07.c | 1 +
> .../kernel/syscalls/setsockopt/setsockopt09.c | 1 -
> testcases/kernel/syscalls/tgkill/tgkill03.c | 1 -
> .../syscalls/timerfd/timerfd_settime02.c | 1 +
> .../syscalls/userfaultfd/userfaultfd01.c | 1 -
> testcases/kernel/syscalls/writev/writev03.c | 2 +-
> 63 files changed, 339 insertions(+), 296 deletions(-)
> delete mode 100644 lib/newlib_tests/test10.c
> delete mode 100644 lib/newlib_tests/test12.c
> rename lib/newlib_tests/{test18.c => test_runtime01.c} (58%)
> create mode 100644 lib/newlib_tests/test_runtime02.c
> delete mode 100644 testcases/kernel/io/ltp-aiodio/read_checkzero.c
--
Thank you,
Richard.
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2022-05-05 8:28 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-03 17:46 [LTP] [PATCH v2 00/30] Introduce runtime and conver tests Cyril Hrubis
2022-05-03 17:46 ` [LTP] [PATCH v2 01/30] Introduce a concept of max runtime Cyril Hrubis
2022-05-03 21:10 ` [LTP] [Automated-testing] " Petr Vorel
[not found] ` <16EBB49075039E76.23911@lists.yoctoproject.org>
2022-05-03 21:21 ` Petr Vorel
2022-05-05 7:11 ` Richard Palethorpe
2022-05-05 9:48 ` Cyril Hrubis
2022-05-05 10:09 ` Richard Palethorpe
2022-05-10 13:15 ` Li Wang
2022-05-11 11:47 ` Cyril Hrubis
2022-05-12 12:19 ` Cyril Hrubis
2022-05-05 11:12 ` [LTP] " Jan Stancek
2022-05-05 11:19 ` Cyril Hrubis
2022-05-10 14:03 ` Li Wang
2022-05-11 11:55 ` Cyril Hrubis
2022-05-03 17:46 ` [LTP] [PATCH v2 02/30] mtest06/mmap1: Convert to runtime Cyril Hrubis
2022-05-03 17:46 ` [LTP] [PATCH v2 03/30] mtest06/mmap3: " Cyril Hrubis
2022-05-03 17:46 ` [LTP] [PATCH v2 04/30] mtest01/mtest01: " Cyril Hrubis
2022-05-03 17:46 ` [LTP] [PATCH v2 05/30] cve/cve-2015-3290: " Cyril Hrubis
2022-05-03 17:46 ` [LTP] [PATCH v2 06/30] crypto/af_alg02: " Cyril Hrubis
2022-05-05 8:33 ` [LTP] [Automated-testing] " Richard Palethorpe
2022-05-03 17:46 ` [LTP] [PATCH v2 07/30] crypto/pcrypt_aead01: " Cyril Hrubis
2022-05-03 17:46 ` [LTP] [PATCH v2 08/30] syscalls/clock_gettime01: Remove useless timeout Cyril Hrubis
2022-05-03 17:46 ` [LTP] [PATCH v2 09/30] syscalls/fanotify22: " Cyril Hrubis
2022-05-03 17:46 ` [LTP] [PATCH v2 10/30] syscalls/gettimeofday02: Convert to runtime Cyril Hrubis
2022-05-03 17:46 ` [LTP] [PATCH v2 11/30] syscalls/inotify06: " Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 12/30] syscalls/inotify01: Remove now useless timeout Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 13/30] syscalls/perf_event_open03: Convert to runtime Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 14/30] syscalls/readv01: Remove now useless timeout Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 15/30] syscalls/tgkill03: Remove now unused timeout Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 16/30] syscalls/setsockopt09: Remove now useless timeout Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 17/30] syscalls/userfaultfd01: " Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 18/30] syscalls/move_pages12: Convert to runtime Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 19/30] syscalls/rt_sigqueueinfo01: Remove now useless timeout Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 20/30] mem/mallocstress: Convert to runtime Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 21/30] mem/{oom, min_free_kbytes}: " Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 22/30] crypto/af_alg02: " Cyril Hrubis
2022-05-05 8:37 ` [LTP] [Automated-testing] " Richard Palethorpe
2022-05-03 17:47 ` [LTP] [PATCH v2 23/30] fuzzy_sync: " Cyril Hrubis
2022-05-03 21:30 ` [LTP] [Automated-testing] " Petr Vorel
2022-05-05 8:51 ` Richard Palethorpe
2022-05-05 10:05 ` Cyril Hrubis
2022-05-05 8:47 ` [LTP] " Richard Palethorpe
2022-05-03 17:47 ` [LTP] [PATCH v2 24/30] ltp-aiodio/dio_sparse, aiodio_sparse: " Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 25/30] ltp-aiodio/read_checkzero: Remove Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 26/30] ltp-aiodio/dio_{truncate, append}: Convert to runtime Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 27/30] ltp-aiodio/dio_read: " Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 28/30] ltp-aiodio/aiodio_append: " Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 29/30] timer_test: " Cyril Hrubis
2022-05-03 17:47 ` [LTP] [PATCH v2 30/30] tst_test: Remove timeout stubs Cyril Hrubis
2022-05-05 8:13 ` Richard Palethorpe [this message]
2022-05-05 8:47 ` [LTP] [Automated-testing] [PATCH v2 00/30] Introduce runtime and conver tests Petr Vorel
2022-05-05 9:53 ` Richard Palethorpe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=875ymke631.fsf@suse.de \
--to=rpalethorpe@suse.de \
--cc=automated-testing@lists.yoctoproject.org \
--cc=chrubis@suse.cz \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox