numam-dpdk/lib/librte_eventdev
Phil Yang 030c216411 eventdev: relax SMP barriers with C11 atomics
The impl_opaque field is shared between the timer arm and cancel
operations. Meanwhile, the state flag acts as a guard variable to
make sure the update of impl_opaque is synchronized. The original
code uses rte_smp barriers to achieve that. This patch uses C11
atomics with an explicit one-way memory barrier instead of full
barriers rte_smp_w/rmb() to avoid the unnecessary barrier on aarch64.

Since compilers can generate the same instructions for volatile and
non-volatile variable in C11 __atomics built-ins, so remain the volatile
keyword in front of state enum to avoid the ABI break issue.

Cc: stable@dpdk.org

Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
2020-07-08 18:16:41 +02:00
..
eventdev_trace_points.c trace: simplify trace point registration 2020-07-05 21:34:21 +02:00
Makefile
meson.build
rte_event_crypto_adapter.c
rte_event_crypto_adapter.h
rte_event_eth_rx_adapter.c
rte_event_eth_rx_adapter.h
rte_event_eth_tx_adapter.c
rte_event_eth_tx_adapter.h
rte_event_ring.c
rte_event_ring.h
rte_event_timer_adapter_pmd.h
rte_event_timer_adapter.c eventdev: relax SMP barriers with C11 atomics 2020-07-08 18:16:41 +02:00
rte_event_timer_adapter.h
rte_eventdev_pmd_pci.h eventdev: fix probe and remove for secondary process 2020-05-02 12:31:57 +02:00
rte_eventdev_pmd_vdev.h
rte_eventdev_pmd.h doc: fix spelling reported by aspell in comments 2019-05-03 00:38:14 +02:00
rte_eventdev_trace_fp.h
rte_eventdev_trace.h
rte_eventdev_version.map
rte_eventdev.c eventdev: fix probe and remove for secondary process 2020-05-02 12:31:57 +02:00
rte_eventdev.h