<div dir="ltr"><div dir="ltr">Hi Julian,<div><br></div><div>Neither mine "sleep 0.1" or your version with "while [! -f ............" are race condition free.</div><div>I suggest that we add an option to gen-ust-events to wait before the first event is generated.<br>gen_kernel_test_events already have this functionality to wait before the first event.<br><br></div><div>Something like this</div><div><font face="monospace">static struct option long_options[] =<br>{<br>   /* These options set a flag. */<br>       {"iter", required_argument, 0, 'i'},<br>        {"wait", required_argument, 0, 'w'},<br>        {"sync-after-first-event", required_argument, 0, 'a'},<br>      {"sync-before-last-event", required_argument, 0, 'b'},<br>      {"sync-before-last-event-touch", required_argument, 0, 'c'},<br>        {"sync-before-exit", required_argument, 0, 'd'},<br>    {"sync-before-exit-touch", required_argument, 0, 'e'},</font></div><div><b><font face="monospace">+ {"sync-before-first-event", required_argument, 0, 'f'},</font></b></div><div></div><div><font face="monospace"> <br> {0, 0, 0, 0}<br>};</font></div><div><font face="monospace">....<br></font><br></div><div>I will create one or more patches for this tomorrow</div><div> </div><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature">Anders Wallin</div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 31, 2021 at 9:25 PM Jonathan Rajotte-Julien <<a href="mailto:jonathan.rajotte-julien@efficios.com">jonathan.rajotte-julien@efficios.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">> #<br>
> # SPDX-License-Identifier: GPL-2.0-only<br>
> <br>
> -TEST_DESC="LTTng - Event traker test"<br>
> +TEST_DESC="LTTng - Event tracker test"<br>
> <br>
> CURDIR=$(dirname "$0")/<br>
> TESTDIR="$CURDIR/../../.."<br>
> @@ -42,6 +42,8 @@ function prepare_ust_app<br>
> <br>
>       $TESTAPP_BIN -i $NR_ITER -w $NR_USEC_WAIT -a "$AFTER_FIRST_PATH" -b<br>
>       "$BEFORE_LAST_PATH" &<br>
>       CHILD_PID=$!<br>
> +     # voluntary context switch to start $TESTAPP_BIN<br>
> +     sleep 0.1<br>
<br>
A wait on the $AFTER_FIRST_PATH file would be probably more deterministic than a sleep here.<br>
<br>
  while [ ! -f "${AFTER_FIRST_PATH}" ]; do<br>
          sleep 0.1<br>
  done<br>
<br>
I would also expect something similar for the `prepare_kernel_app` function considering the same race is most probably present and simply not triggered by a chance of luck.<br>
Seems like gen-kernel-test-events does not expose the same sync capabilities here, please use gen-ust-events as an example of how it is done.<br>
<br>
Let us know how your testing goes.<br>
<br>
Thanks<br>
</blockquote></div></div>