Linux Trace Kernel
 help / color / mirror / Atom feed
From: Gabriele Monaco <gmonaco@redhat.com>
To: Wen Yang <wen.yang@linux.dev>,
	linux-trace-kernel@vger.kernel.org,
	 linux-kernel@vger.kernel.org
Cc: Nam Cao <namcao@linutronix.de>,
	Steven Rostedt <rostedt@goodmis.org>,
	 Thomas Weissschuh <thomas.weissschuh@linutronix.de>,
	Tomas Glozar <tglozar@redhat.com>, John Kacur <jkacur@redhat.com>
Subject: Re: [PATCH v3 04/17] tools/rv: Add selftests
Date: Wed, 15 Jul 2026 13:24:59 +0200	[thread overview]
Message-ID: <cae096bdcab7e3a6247c0591050d4a45d73bc5ba.camel@redhat.com> (raw)
In-Reply-To: <6b232d66-703b-4fe6-bf0c-4f0eeff4b4a7@linux.dev>

On Wed, 2026-07-15 at 02:01 +0800, Wen Yang wrote:
> > Any better idea? We cannot really rely on the shell's $! because command
> > is using a combination of eval+timer and we'd get the wrong pid.
> > 
> 
> - Since $bgpid is the timeout process, its direct child is exactly the
>     command we want. Using pgrep -P $bgpid avoids the fragile pattern
>     matching of pgrep -f and won't accidentally match unrelated
>     processes with a similar command string, eg:
> 
>       for i in $(seq 10); do
>           pid=$(pgrep -P "$bgpid" | head -1)
>           [ -n "$pid" ] && break
>           sleep 0.5
>       done

That would be neat, but apparently eval cmd & spawns a new shell (I'd assume to
keep control of the background task), so in practice we get something like:

  bash(88148)───timeout(88150)───rv mon(88151)

while getting the pid of bash in $!, we could probably do:

  pgrep -P "$(pgrep -P "$bgpid")"

but I'm not really sure how portable this is.

Now I tried all sorts of bash hacks but couldn't reliably avoid this subshell
(technically eval "cmd &" with quoted ampersand skips it, but breaks output
redirection or whatever else).

Unless you have a reliable way to get the pid that doesn't rely on some shell-
specific dark magic, I'd keep pgrep -f .

>     Note: a bounded retry loop may be necessary; without an upper limit 
> the loop hangs indefinitely if the command fails to exec.
> 
> - For the verbose test specifically ("my pid is $pid"), the pid already
>     appears in rv's own output. An alternative is to match it with a
>     numeric pattern instead:
> 
>       "my pid is [0-9]\+"
> 
>     This sidesteps the race entirely for that test case.

Yeah an accurate pid isn't as important in that test, but since it seems to work
fine I'd keep it.

Thanks,
Gabriele


  reply	other threads:[~2026-07-15 11:25 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-25 12:14 [PATCH v3 00/17] rv: Add selftests to tools and KUnit tests Gabriele Monaco
2026-06-25 12:14 ` [PATCH v3 01/17] rv: Use generic rv_this for the rv_monitor variable in LTL Gabriele Monaco
2026-07-02 13:43   ` Nam Cao
2026-06-25 12:14 ` [PATCH v3 02/17] tools/rv: Fix exit status when monitor execution fails Gabriele Monaco
2026-06-25 12:14 ` [PATCH v3 03/17] verification/rvgen: Improve rv_dir discovery in RVGenerator Gabriele Monaco
2026-07-02 13:53   ` Nam Cao
2026-07-02 14:00     ` Thomas Weissschuh
2026-07-02 14:01     ` Gabriele Monaco
2026-07-02 14:09       ` Thomas Weissschuh
2026-07-02 14:16   ` Nam Cao
2026-06-25 12:14 ` [PATCH v3 04/17] tools/rv: Add selftests Gabriele Monaco
2026-06-28 17:10   ` Wen Yang
2026-06-29  6:51     ` Gabriele Monaco
2026-07-14 18:01       ` Wen Yang
2026-07-15 11:24         ` Gabriele Monaco [this message]
2026-06-25 12:14 ` [PATCH v3 05/17] verification/rvgen: Add golden and spec folders for tests Gabriele Monaco
2026-06-25 12:14 ` [PATCH v3 06/17] verification/rvgen: Add selftests Gabriele Monaco
2026-07-09 17:13   ` Wen Yang
2026-06-25 12:14 ` [PATCH v3 07/17] rv: Add KUnit stub to rv_react() and rv_*_task_monitor_slot() Gabriele Monaco
2026-07-02 13:59   ` Nam Cao
2026-06-25 12:14 ` [PATCH v3 08/17] rv: Export task monitor slot and react symbols Gabriele Monaco
2026-07-02 14:00   ` Nam Cao
2026-06-25 12:14 ` [PATCH v3 09/17] rv: Add KUnit tests for some DA/HA monitors Gabriele Monaco
2026-07-07  6:52   ` Nam Cao
2026-06-25 12:14 ` [PATCH v3 10/17] rv: Add KUnit stub for current Gabriele Monaco
2026-06-25 12:14 ` [PATCH v3 11/17] rv: Prevent unintentional tracepoints during KUnit tests Gabriele Monaco
2026-06-28 17:17   ` Wen Yang
2026-07-07  7:00   ` Nam Cao
2026-07-07  7:23     ` Gabriele Monaco
2026-06-25 12:14 ` [PATCH v3 12/17] rv: Add KUnit tests for some LTL monitors Gabriele Monaco
2026-07-07  7:04   ` Nam Cao
2026-06-25 12:14 ` [PATCH v3 13/17] verification/rvgen: Add the rvgen kunit subcommand Gabriele Monaco
2026-07-09  8:02   ` Nam Cao
2026-06-25 12:14 ` [PATCH v3 14/17] verification/rvgen: Add selftests for rvgen kunit Gabriele Monaco
2026-06-28 17:06   ` Wen Yang
2026-06-29  7:04     ` Gabriele Monaco
2026-07-14 17:49       ` Wen Yang
2026-07-15  9:25         ` Gabriele Monaco
2026-07-15 11:23           ` Nam Cao
2026-07-09  8:11   ` Nam Cao
2026-07-09 15:52     ` Gabriele Monaco
2026-06-25 12:14 ` [PATCH v3 15/17] selftests/verification: Fix wrong errexit assumption Gabriele Monaco
2026-07-09  8:14   ` Nam Cao
2026-07-09 17:10   ` Wen Yang
2026-06-25 12:14 ` [PATCH v3 16/17] selftests/verification: Rearrange the wwnr_printk test Gabriele Monaco
2026-07-09 17:08   ` Wen Yang
2026-07-10  8:31     ` Gabriele Monaco
2026-07-14 17:42       ` Wen Yang
2026-07-10  6:18   ` Nam Cao
2026-07-10  8:41     ` Gabriele Monaco
2026-06-25 12:14 ` [PATCH v3 17/17] selftests/verification: Add selftests for deadline and stall monitors Gabriele Monaco
2026-06-28 16:58   ` Wen Yang
2026-07-02 14:05     ` Gabriele Monaco

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=cae096bdcab7e3a6247c0591050d4a45d73bc5ba.camel@redhat.com \
    --to=gmonaco@redhat.com \
    --cc=jkacur@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=namcao@linutronix.de \
    --cc=rostedt@goodmis.org \
    --cc=tglozar@redhat.com \
    --cc=thomas.weissschuh@linutronix.de \
    --cc=wen.yang@linux.dev \
    /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