[LTP] [PATCH] move_pages12: end early if runtime gets close to test time

Li Wang liwang@redhat.com
Tue Aug 28 11:00:00 CEST 2018


On Mon, Aug 27, 2018 at 10:06 PM, Jan Stancek <jstancek@redhat.com> wrote:

> Most systems can complete this reproducer in standard test time.
> Small groups of systems (e.g. aarch64 with 512M hugepages) can hit
> a timeout.
>
> Add a check for elapsed time and end test early if we are getting close
> (80%).
>
> Fixes:
> #387
>
> Signed-off-by: Jan Stancek <jstancek@redhat.com>
> ---
>  testcases/kernel/syscalls/move_pages/move_pages12.c | 20
> ++++++++++++++------
>  1 file changed, 14 insertions(+), 6 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/move_pages/move_pages12.c
> b/testcases/kernel/syscalls/move_pages/move_pages12.c
> index c0ff27114110..2813097871e4 100644
> --- a/testcases/kernel/syscalls/move_pages/move_pages12.c
> +++ b/testcases/kernel/syscalls/move_pages/move_pages12.c
> @@ -40,6 +40,7 @@
>  #include <sys/wait.h>
>
>  #include "tst_test.h"
> +#include "tst_timer.h"
>  #include "move_pages_support.h"
>  #include "lapi/mmap.h"
>
> @@ -51,6 +52,7 @@
>  #define PATH_HUGEPAGES "/sys/kernel/mm/hugepages/"
>  #define TEST_PAGES     2
>  #define TEST_NODES     2
> +#define TEST_TIMEOUT   300
>
>  static int pgsz, hpsz;
>  static long orig_hugepages = -1;
> @@ -102,6 +104,8 @@ static void do_test(void)
>         pid_t cpid = -1;
>         int status;
>
> +       tst_timer_start(CLOCK_MONOTONIC);
> +
>         addr = SAFE_MMAP(NULL, TEST_PAGES * hpsz, PROT_READ | PROT_WRITE,
>                 MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
>
> @@ -123,14 +127,15 @@ static void do_test(void)
>                 memset(addr, 0, TEST_PAGES * hpsz);
>
>                 SAFE_MUNMAP(addr, TEST_PAGES * hpsz);
> -       }
>
> -       if (i == LOOPS) {
> -               SAFE_KILL(cpid, SIGKILL);
> -               SAFE_WAITPID(cpid, &status, 0);
> -               if (!WIFEXITED(status))
> -                       tst_res(TPASS, "Bug not reproduced");
> +               if (tst_timer_expired_ms(
> TEST_TIMEOUT))
>

This is a good way for solving
#387 issue, but that will make the
LTP_TIMEOUT_MUL out of action even if someone set a value to it.
because test will always stop on
TEST_TIMEOUT expired every time.

Shouldn't we consider this situation?

-- 
Regards,
Li Wang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20180828/a363d60a/attachment.html>


More information about the ltp mailing list