[PATCH 1/2] rcu: use atomic operation on acked token
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: sta...@dpdk.org Reported-by: Ola Liljedahl Signed-off-by: Honnappa Nagarahalli Reviewed-by: Ola Liljedahl --- 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
[PATCH 2/2] rcu: use correct value of acked token in debug print
Debug print should use acked token value that was used for comparison. Fixes: bf386ae377aa ("rcu: add additional debug logs") Cc: sta...@dpdk.org Reported-by: Nathan Brown Signed-off-by: Honnappa Nagarahalli Reviewed-by: Nathan Brown --- lib/rcu/rte_rcu_qsbr.h | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/rcu/rte_rcu_qsbr.h b/lib/rcu/rte_rcu_qsbr.h index f6a3731308..a7d6e63560 100644 --- a/lib/rcu/rte_rcu_qsbr.h +++ b/lib/rcu/rte_rcu_qsbr.h @@ -664,17 +664,20 @@ __rte_rcu_qsbr_check_all(struct rte_rcu_qsbr *v, uint64_t t, bool wait) static __rte_always_inline int rte_rcu_qsbr_check(struct rte_rcu_qsbr *v, uint64_t t, bool wait) { + uint64_t acked_token; + RTE_ASSERT(v != NULL); /* Check if all the readers have already acknowledged this token */ - if (likely(t <= rte_atomic_load_explicit(&v->acked_token, - rte_memory_order_relaxed))) { + acked_token = rte_atomic_load_explicit(&v->acked_token, + rte_memory_order_relaxed); + if (likely(t <= acked_token)) { __RTE_RCU_DP_LOG(DEBUG, "%s: check: token = %" PRIu64 ", wait = %d", __func__, t, wait); __RTE_RCU_DP_LOG(DEBUG, "%s: status: least acked token = %" PRIu64, - __func__, v->acked_token); + __func__, acked_token); return 1; } -- 2.34.1
Arm roadmap for 24.03
Hello, Following are the patches planned for 24.03 release. 1) Pointer compression APIs https://patchwork.dpdk.org/project/dpdk/list/?series=30100 2) Add SVE support for hash bulk key lookup https://patchwork.dpdk.org/project/dpdk/list/?series=30183 3) Add support for Neoverse V2 https://patchwork.dpdk.org/project/dpdk/list/?series=30831 4) Configuration changes for cross build https://patchwork.dpdk.org/project/dpdk/list/?series=30448 5) RCU library fixes https://patchwork.dpdk.org/project/dpdk/list/?series=31000 Thank you, Honnappa
Re: [PATCH v5 2/2] net/octeon_ep: add Rx NEON routine
On Fri, Feb 2, 2024 at 8:54 PM wrote: > > From: Pavan Nikhilesh > > Add Rx ARM NEON SIMD routine. > > Signed-off-by: Pavan Nikhilesh Series applied to dpdk-next-net-mrvl/for-main. Thanks