On Thu, 2022-04-14 at 14:58 +0200, Richard Weinberger via Xenomai wrote: > ----- Ursprüngliche Mail ----- > > Von: "Jan Kiszka" <[email protected]> > > An: "richard" <[email protected]>, "xenomai" <[email protected]> > > Gesendet: Donnerstag, 14. April 2022 13:18:59 > > Betreff: Re: [PATCH v2 0/9] Revive alchemy, pSOS and VxWorks tests > > > On 13.04.22 23:58, Richard Weinberger via Xenomai wrote: > > > This patch series is a first attempt to integrate the currently abandoned > > > alchemy, pSOS and VxWorks tests into Xenomai's test suite. > > > Since each test assumes running as own process a test driver is needed > > > which executes each tests separately. > > > The driver makes use of the smokey framework. > > > > > > Test results on a x86 VM (5.15.19, Xenomai master as of today): > > > - Alchemy: > > > test2 fails: > > > [8] at task-2.c:71 > > > [1] at task-2.c:24 > > > [9] at task-2.c:79 > > > [4] at task-2.c:43 > > > [10] at task-2.c:87 > > > [5] at task-2.c:48 > > > [11] at task-2.c:92 > > > [2] at task-2.c:29 > > > [6] at task-2.c:52 > > > 0"022.972| BUG in __traceobj_check_abort(): [FGND] wrong return > > > status: > > > task-2.c:55 => EINVAL (want OK) > > task-2 seems suffers from modern gcc, changes to safety and count are dead > stores. > > This makes the test pass here: > > diff --git a/testsuite/alchemytests/task-2.c b/testsuite/alchemytests/task-2.c > index e751ddd34..9d5281c75 100644 > --- a/testsuite/alchemytests/task-2.c > +++ b/testsuite/alchemytests/task-2.c > @@ -28,8 +28,10 @@ static void background_task(void *arg) > > traceobj_mark(&trobj, 2); > > - while (--safety > 0) > + while (--safety > 0) { > + compiler_barrier(); > count++; > + } > > traceobj_exit(&trobj); > } > > ...same does marking both variables as volatile.
I don't have much context here, but volatile sounds like a valid solution (assuming that safety is written by a different thread) > > Thanks, > //richard >
