net/failsafe: mitigate data plane atomic operations

Fail-safe uses atomic operations to protect sub-device close operation
calling by host thread in removal time while the removed sub-device
burst functions are still in process by application threads.

Using "set" atomic operations is a little bit more efficient than "add"
or "sub" atomic operations because "set" shouldn't read the value and
in fact, it does not need a special atomic mechanism in x86 platforms.

Replace "add 1" and "sub 1" atomic operations by "set 1" and "set 0"
atomic operations.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
This commit is contained in:
Matan Azrad 2017-12-19 17:14:28 +00:00 committed by Ferruh Yigit
parent e628228309
commit 1e2670a900

View File

@ -269,13 +269,13 @@ extern int mac_from_arg;
* a: (rte_atomic64_t)
*/
#define FS_ATOMIC_P(a) \
rte_atomic64_add(&(a), 1)
rte_atomic64_set(&(a), 1)
/**
* a: (rte_atomic64_t)
*/
#define FS_ATOMIC_V(a) \
rte_atomic64_sub(&(a), 1)
rte_atomic64_set(&(a), 0)
/**
* s: (struct sub_device *)