[PATCH 1/2] rcu: use atomic operation on acked token
Honnappa Nagarahalli
honnappa.nagarahalli at arm.com
Mon Feb 5 05:59:48 CET 2024
acked_token should be read using atomic operation as the
the API rte_rcu_qsbr_check is advertised as multi-thread safe.
Fixes: 1f90d32ce175 ("rcu: add least acknowledged token optimization")
Cc: stable at dpdk.org
Reported-by: Ola Liljedahl <ola.liljedahl at arm.com>
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
Reviewed-by: Ola Liljedahl <ola.liljedahl at arm.com>
---
lib/rcu/rte_rcu_qsbr.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/rcu/rte_rcu_qsbr.h b/lib/rcu/rte_rcu_qsbr.h
index 5979fb0efb..f6a3731308 100644
--- a/lib/rcu/rte_rcu_qsbr.h
+++ b/lib/rcu/rte_rcu_qsbr.h
@@ -667,7 +667,8 @@ rte_rcu_qsbr_check(struct rte_rcu_qsbr *v, uint64_t t, bool wait)
RTE_ASSERT(v != NULL);
/* Check if all the readers have already acknowledged this token */
- if (likely(t <= v->acked_token)) {
+ if (likely(t <= rte_atomic_load_explicit(&v->acked_token,
+ rte_memory_order_relaxed))) {
__RTE_RCU_DP_LOG(DEBUG,
"%s: check: token = %" PRIu64 ", wait = %d",
__func__, t, wait);
--
2.34.1
More information about the stable
mailing list