[PATCH v3 4/7] rcu: use abstracted bit count functions
Tyler Retzlaff
roretzla at linux.microsoft.com
Wed Nov 8 00:38:17 CET 2023
Use rte_ctz32 or rte_ctz64 respectively instead of __builtin_ctzl
depending on the resultant type of the expression passed as an argument
Fixes: 18898c4d06f9 ("eal: use abstracted bit count functions")
Signed-off-by: Tyler Retzlaff <roretzla at linux.microsoft.com>
---
lib/rcu/rte_rcu_qsbr.c | 4 ++--
lib/rcu/rte_rcu_qsbr.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/rcu/rte_rcu_qsbr.c b/lib/rcu/rte_rcu_qsbr.c
index 4dc7714..a9f3d6c 100644
--- a/lib/rcu/rte_rcu_qsbr.c
+++ b/lib/rcu/rte_rcu_qsbr.c
@@ -231,7 +231,7 @@
rte_memory_order_acquire);
id = i << __RTE_QSBR_THRID_INDEX_SHIFT;
while (bmap) {
- t = __builtin_ctzl(bmap);
+ t = rte_ctz64(bmap);
fprintf(f, "%u ", id + t);
bmap &= ~(1UL << t);
@@ -252,7 +252,7 @@
rte_memory_order_acquire);
id = i << __RTE_QSBR_THRID_INDEX_SHIFT;
while (bmap) {
- t = __builtin_ctzl(bmap);
+ t = rte_ctz64(bmap);
fprintf(f, "thread ID = %u, count = %" PRIu64 ", lock count = %u\n",
id + t,
rte_atomic_load_explicit(
diff --git a/lib/rcu/rte_rcu_qsbr.h b/lib/rcu/rte_rcu_qsbr.h
index 9f4aed2..13461f8 100644
--- a/lib/rcu/rte_rcu_qsbr.h
+++ b/lib/rcu/rte_rcu_qsbr.h
@@ -530,7 +530,7 @@ struct rte_rcu_qsbr_dq_parameters {
id = i << __RTE_QSBR_THRID_INDEX_SHIFT;
while (bmap) {
- j = __builtin_ctzl(bmap);
+ j = rte_ctz64(bmap);
__RTE_RCU_DP_LOG(DEBUG,
"%s: check: token = %" PRIu64 ", wait = %d, Bit Map = 0x%" PRIx64 ", Thread ID = %d",
__func__, t, wait, bmap, id + j);
--
1.8.3.1
More information about the dev
mailing list