Fix: notifier: use store-release/load-acquire for error counter
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 9 Dec 2020 14:30:23 +0000 (09:30 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 9 Dec 2020 14:30:23 +0000 (09:30 -0500)
commit33f43caa08bc332900bc8671a156912a09e88aa2
treec54923270651f93f343099c8e70a6c5b7ee903aa
parentc30ad764fc2500598086902cf3bd2801b9c05c64
Fix: notifier: use store-release/load-acquire for error counter

The "record_error" operation is executed concurrently with setting the
error counter in the notifier group without locking, so we need to
explicitly provide existance guarantees.

The only visible transition is from NULL -> !NULL, because the only
situation reverting the error counter back to NULL is on destruction of
the notification group, after an RCU synchronisation guarantees that no
record_error can observe this pointer anymore.

Use the stronger "cmm_smp_mb()" to provide store-release/load-acquire
semantics because the explicit store-release and load-acquire are not
implemented in the CMM model yet.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I3bbeecc00ff33c5d8ad1e3fd41c8a0dc866f1943
liblttng-ust/event-notifier-notification.c
liblttng-ust/lttng-ust-abi.c
This page took 0.025234 seconds and 4 git commands to generate.