[dpdk-stable] [PATCH] net/sfc: relax SW packets/bytes atomic ops memory ordering

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Fri Sep 17 13:15:14 CEST 2021


No barriers are required when stats are incremented or read.

Fixes: 96fd2bd69b58 ("net/sfc: support flow action count in transfer rules")
Cc: stable at dpdk.org

Signed-off-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
---
 drivers/net/sfc/sfc_stats.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/sfc/sfc_stats.h b/drivers/net/sfc/sfc_stats.h
index 2d7ab71f14..aae8243c73 100644
--- a/drivers/net/sfc/sfc_stats.h
+++ b/drivers/net/sfc/sfc_stats.h
@@ -53,7 +53,7 @@ sfc_pkts_bytes_add(union sfc_pkts_bytes *st, uint64_t pkts, uint64_t bytes)
 	 * core sees both counter updates together.
 	 */
 	__atomic_store_n(&st->pkts_bytes.int128, result.pkts_bytes.int128,
-			 __ATOMIC_RELEASE);
+			 __ATOMIC_RELAXED);
 #else
 	st->pkts += pkts;
 	st->bytes += bytes;
@@ -68,7 +68,7 @@ sfc_pkts_bytes_get(const union sfc_pkts_bytes *st, union sfc_pkts_bytes *result)
 {
 #if SFC_SW_STATS_ATOMIC
 	result->pkts_bytes.int128 = __atomic_load_n(&st->pkts_bytes.int128,
-						    __ATOMIC_ACQUIRE);
+						    __ATOMIC_RELAXED);
 #else
 	*result = *st;
 #endif
-- 
2.30.2



More information about the stable mailing list