From: Cyril Hrubis <chrubis@suse.cz>
To: Petr Vorel <pvorel@suse.cz>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH 2/2] syscalls/msgstress01: Fix timeouts
Date: Thu, 23 May 2024 17:33:31 +0200 [thread overview]
Message-ID: <Zk9hy4QS4FCmveZ3@yuki> (raw)
In-Reply-To: <20240523152054.GA18111@pevik>
Hi!
> > Make the test exit if runtime has been exhausted before we finished the
> > requested amount of iterations.
>
> > For that to happen we let the main test process to loop while checking
> > the runtime and set the stop flag if runtime was exhausted. We also need
> > to separte the stop and fail flag and add counter for finished children.
> nit: s/separte/separate/
>
> ...
> > static void remove_queues(void)
> > @@ -196,12 +210,37 @@ static void run(void)
>
> > if (*stop)
> > break;
> > +
> > + if (!tst_remaining_runtime()) {
> > + tst_res(TWARN, "Out of runtime during forking...");
>
> I tested the patchset on various VMs (various kernels), with both 1 or 2 CPU.
> Indeed it fixes the problem. IMHO it can quite easily get KVM host overloaded
> enough to get the TWARN out of runtime during forking, but we can't do anything
> about it.
And I think that it's fair to signal to the user that the machine is too
overloaded to run a meaningful test in this case.
> msgstress01.c:215: TWARN: Out of runtime during forking...
> msgstress01.c:244: TPASS: Test passed. All messages have been received
>
> > + *stop = 1;
> > + break;
> > + }
> > + }
> > +
> > + if (!(*stop))
> > + tst_res(TINFO, "All processes running.");
> very nit: I'd remove dot at the end.
>
> > +
> > + for (;;) {
> > + if (tst_atomic_load(finished) == 2 * num_messages)
> > + break;
> > +
> > + if (*stop)
> > + break;
> > +
> > + if (!tst_remaining_runtime()) {
> > + tst_res(TINFO, "Out of runtime, stopping processes...");
> > + *stop = 1;
> > + break;
> > + }
> > +
> > + sleep(1);
> > }
>
> > tst_reap_children();
> > remove_queues();
>
> > - if (!(*stop))
> > + if (!(*fail))
> > tst_res(TPASS, "Test passed. All messages have been received");
> > }
>
> > @@ -242,14 +281,16 @@ static void setup(void)
> > MAP_SHARED | MAP_ANONYMOUS,
> > -1, 0);
>
> > - stop = SAFE_MMAP(
> > + flags = SAFE_MMAP(
> > NULL,
> > - sizeof(int),
> > + sizeof(int) * 3,
> > PROT_READ | PROT_WRITE,
> > MAP_SHARED | MAP_ANONYMOUS,
> > -1, 0);
>
> > - reset_messages();
> > + stop = &flags[0];
> > + fail = &flags[1];
> > + finished = &flags[2];
> > }
>
> > static void cleanup(void)
> > @@ -260,7 +301,7 @@ static void cleanup(void)
> > remove_queues();
>
> > SAFE_MUNMAP(ipc_data, sizeof(struct sysv_data) * num_messages);
> > - SAFE_MUNMAP((void *)stop, sizeof(int));
> > + SAFE_MUNMAP(flags, sizeof(int) * 3);
> > }
>
> > static struct tst_test test = {
> > @@ -271,7 +312,7 @@ static struct tst_test test = {
> > .max_runtime = 180,
> > .options = (struct tst_option[]) {
> > {"n:", &str_num_messages, "Number of messages to send (default: 1000)"},
> > - {"l:", &str_num_iterations, "Number iterations per message (default: 10000)"},
> > + {"l:", &str_num_iterations, "Number iterations per message (default: " TST_TO_STR(MAXNREPS) ")"},
> > {},
> very nit: too long line
Feel free to fix the minor nits and push the patch.
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2024-05-23 15:33 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-23 13:31 [LTP] [PATCH 0/2] Fix msgstress01 timeouts Cyril Hrubis
2024-05-23 13:31 ` [LTP] [PATCH 1/2] syscalls/msgstress01: Fix the stop logic Cyril Hrubis
2024-05-23 13:40 ` Andrea Cervesato via ltp
2024-05-23 13:31 ` [LTP] [PATCH 2/2] syscalls/msgstress01: Fix timeouts Cyril Hrubis
2024-05-23 14:37 ` Martin Doucha
2024-05-23 15:20 ` Petr Vorel
2024-05-23 15:33 ` Cyril Hrubis [this message]
2024-05-23 15:41 ` Petr Vorel
2024-05-23 15:43 ` Petr Vorel
2024-05-23 15:55 ` Petr Vorel
2024-05-23 15:55 ` Cyril Hrubis
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=Zk9hy4QS4FCmveZ3@yuki \
--to=chrubis@suse.cz \
--cc=ltp@lists.linux.it \
--cc=pvorel@suse.cz \
/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