net/sfc: relax SW packets/bytes atomic ops memory ordering

Message ID 20210917111514.680649-1-andrew.rybchenko@oktetlabs.ru (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/sfc: relax SW packets/bytes atomic ops memory ordering |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/github-robot: build success github build: passed
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS

Commit Message

Andrew Rybchenko Sept. 17, 2021, 11:15 a.m. UTC
  No barriers are required when stats are incremented or read.

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

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

Comments

Ferruh Yigit Oct. 7, 2021, 2:59 p.m. UTC | #1
On 9/17/2021 12:15 PM, Andrew Rybchenko wrote:
> No barriers are required when stats are incremented or read.
> 
> Fixes: 96fd2bd69b58 ("net/sfc: support flow action count in transfer rules")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>

Applied to dpdk-next-net/main, thanks.
  

Patch

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