On Wed, Jan 22, 2025 at 2:59 PM Vitalii Mordan <mor...@ispras.ru> wrote: > > This patch addresses a potential data race involving the global variable > goflag in the rcutorture test. The issue is resolved by adding the atomic > qualifier to ensure proper synchronization.
Hello! QEMU does not use _Atomic; in general, the C11 committee decision to default to sequentially consistent atomics is a bad idea and we prefer to annotate _accesses_ rather than _variables_ (yes, I'm aware that volatile has the same issue!). Can you redo the patch to access goflag with qatomic_read and qatomic_set? Paolo > Fixes: 8fda74a52b ("rcu: add rcutorture") > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2750 > Signed-off-by: Vitalii Mordan <mor...@ispras.ru> > --- > tests/unit/rcutorture.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tests/unit/rcutorture.c b/tests/unit/rcutorture.c > index 7662081683..c4971632f8 100644 > --- a/tests/unit/rcutorture.c > +++ b/tests/unit/rcutorture.c > @@ -70,7 +70,7 @@ int nthreadsrunning; > #define GOFLAG_RUN 1 > #define GOFLAG_STOP 2 > > -static volatile int goflag = GOFLAG_INIT; > +static _Atomic int goflag = GOFLAG_INIT; > > #define RCU_READ_RUN 1000 > > -- > 2.34.1 >