Re: [PATCH] perf test: waiting.sh: Replace timestamp polling with sleep

From: Arnaldo Carvalho de Melo

Date: Tue Sep 08 2026 - 17:28:34 EST


On Tue, Sep 08, 2026 at 10:14:29AM -0700, Ian Rogers wrote:
> On Tue, Sep 8, 2026 at 8:21 AM Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote:
> >
> > The waiting helpers implement timeouts using:
> >
> > date +%s%1N
> >
> > This relies on GNU coreutils date truncating %N to the specified width,
> > so %1N yields tenths of a second.
> >
> > Rust coreutils (uutils) interprets the width differently and does not
> > truncate the nanoseconds field. Consequently "date +%1N" returns all
> > nine nanosecond digits, causing the elapsed-time calculation to be done
> > in nanoseconds while timeout values remain in tenths of a second.
> >
> > As a result, timeout comparisons succeed immediately and the waiting
> > helpers time out on their first iteration. This causes
> > test_intel_pt.sh to fail on systems using uutils "date".
> >
> > Avoid implementation-specific date formatting entirely. Instead, wait
> > for 100 ms on each iteration and count the timeout down. Besides fixing
> > the portability issue, this removes the busy-waiting behaviour in
> > wait_for_perf_to_start(), which could otherwise consume CPU while
> > waiting for perf record to start.
> >
> > Since the timeout is now based on repeated sleeps, it is only
> > approximate. Update the comments accordingly. Also make is_running()
> > wait for exactly the documented number of tenths by changing its timeout
> > test from -gt to the new logic, and quote tm_out in the modified code.
> >
> > Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
>
> Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>

Thanks, applied to perf-tools-next, for v7.4.

- Arnaldo