From patchwork Tue Nov 7 23:38:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 133954 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 18D8D432CC; Wed, 8 Nov 2023 00:38:30 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A9E6B42D76; Wed, 8 Nov 2023 00:38:25 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 94B4240689 for ; Wed, 8 Nov 2023 00:38:22 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id BA7E820B74C1; Tue, 7 Nov 2023 15:38:21 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com BA7E820B74C1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1699400301; bh=b9vPWAPxatAB2C2eslSLiTdJANCajBnB3l4tPn3nQS8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jQ+l/oPIAzvrTLVWCXAsFBP0ILuJg5fQq0a9/8BXO64Fn25EJCOpVqSPzW++kqlxt +rwLiTwSqYhgtOX4+MTWSptyLUD0x35mK73gOqMipw79hmu7/k2xwl+DYBpzgkGHHR sqGRB1MG6CyL/duK/tnokFoKo3w/Ghp8lDB/nuts= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Cristian Dumitrescu , David Hunt , Honnappa Nagarahalli , Ruifeng Wang , Sameh Gobriel , Tyler Retzlaff , Vladimir Medvedkin , Yipeng Wang , mb@smartsharesystems.com Subject: [PATCH v3 1/7] distributor: use abstracted bit count functions Date: Tue, 7 Nov 2023 15:38:14 -0800 Message-Id: <1699400300-22545-2-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> References: <1698887132-5347-1-git-send-email-roretzla@linux.microsoft.com> <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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 --- lib/distributor/rte_distributor_single.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/distributor/rte_distributor_single.c b/lib/distributor/rte_distributor_single.c index ad43c13..08144e5 100644 --- a/lib/distributor/rte_distributor_single.c +++ b/lib/distributor/rte_distributor_single.c @@ -252,7 +252,7 @@ struct rte_mbuf * if (match) { next_mb = NULL; - unsigned worker = __builtin_ctzl(match); + unsigned worker = rte_ctz64(match); if (add_to_backlog(&d->backlog[worker], next_value) < 0) next_idx--; From patchwork Tue Nov 7 23:38:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 133957 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 618AD432CC; Wed, 8 Nov 2023 00:38:46 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5E8BE42D9D; Wed, 8 Nov 2023 00:38:29 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 92E4D402C9 for ; Wed, 8 Nov 2023 00:38:22 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id C8A0820B74C2; Tue, 7 Nov 2023 15:38:21 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com C8A0820B74C2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1699400301; bh=nZ+Kj5q1Szts3I5PejzgGbG0XPcFuxH9Y9wWnRtfQYY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=m8JxVFVxwx9U4npHv7zTF/8jKjFkvD8+XNRj+XeYV8dCAKWcLWnGna8LR1xT04TCN WzJ50RRfQNx2qCyIwMn3QfocjLIFiIVbcQ0tvW6ZxbaSVbytRp5KWxrI4r66x2+40x K5qn5xyfsziwYg9Rb+Nr8y8SM0y6NDQo3cVVnNFQ= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Cristian Dumitrescu , David Hunt , Honnappa Nagarahalli , Ruifeng Wang , Sameh Gobriel , Tyler Retzlaff , Vladimir Medvedkin , Yipeng Wang , mb@smartsharesystems.com Subject: [PATCH v3 2/7] hash: use abstracted bit count functions Date: Tue, 7 Nov 2023 15:38:15 -0800 Message-Id: <1699400300-22545-3-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> References: <1698887132-5347-1-git-send-email-roretzla@linux.microsoft.com> <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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 --- lib/hash/rte_cuckoo_hash.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lib/hash/rte_cuckoo_hash.c b/lib/hash/rte_cuckoo_hash.c index b2cf60d..19ee53a 100644 --- a/lib/hash/rte_cuckoo_hash.c +++ b/lib/hash/rte_cuckoo_hash.c @@ -1931,7 +1931,7 @@ struct rte_hash * if (prim_hitmask[i]) { uint32_t first_hit = - __builtin_ctzl(prim_hitmask[i]) + rte_ctz32(prim_hitmask[i]) >> 1; uint32_t key_idx = primary_bkt[i]->key_idx[first_hit]; @@ -1945,7 +1945,7 @@ struct rte_hash * if (sec_hitmask[i]) { uint32_t first_hit = - __builtin_ctzl(sec_hitmask[i]) + rte_ctz32(sec_hitmask[i]) >> 1; uint32_t key_idx = secondary_bkt[i]->key_idx[first_hit]; @@ -1962,7 +1962,7 @@ struct rte_hash * positions[i] = -ENOENT; while (prim_hitmask[i]) { uint32_t hit_index = - __builtin_ctzl(prim_hitmask[i]) + rte_ctz32(prim_hitmask[i]) >> 1; uint32_t key_idx = primary_bkt[i]->key_idx[hit_index]; @@ -1990,7 +1990,7 @@ struct rte_hash * while (sec_hitmask[i]) { uint32_t hit_index = - __builtin_ctzl(sec_hitmask[i]) + rte_ctz32(sec_hitmask[i]) >> 1; uint32_t key_idx = secondary_bkt[i]->key_idx[hit_index]; @@ -2088,7 +2088,7 @@ struct rte_hash * if (prim_hitmask[i]) { uint32_t first_hit = - __builtin_ctzl(prim_hitmask[i]) + rte_ctz32(prim_hitmask[i]) >> 1; uint32_t key_idx = primary_bkt[i]->key_idx[first_hit]; @@ -2102,7 +2102,7 @@ struct rte_hash * if (sec_hitmask[i]) { uint32_t first_hit = - __builtin_ctzl(sec_hitmask[i]) + rte_ctz32(sec_hitmask[i]) >> 1; uint32_t key_idx = secondary_bkt[i]->key_idx[first_hit]; @@ -2118,7 +2118,7 @@ struct rte_hash * for (i = 0; i < num_keys; i++) { while (prim_hitmask[i]) { uint32_t hit_index = - __builtin_ctzl(prim_hitmask[i]) + rte_ctz32(prim_hitmask[i]) >> 1; uint32_t key_idx = rte_atomic_load_explicit( @@ -2150,7 +2150,7 @@ struct rte_hash * while (sec_hitmask[i]) { uint32_t hit_index = - __builtin_ctzl(sec_hitmask[i]) + rte_ctz32(sec_hitmask[i]) >> 1; uint32_t key_idx = rte_atomic_load_explicit( From patchwork Tue Nov 7 23:38:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 133956 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E38F5432CC; Wed, 8 Nov 2023 00:38:40 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3F67442D45; Wed, 8 Nov 2023 00:38:28 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 8A4EF4026D for ; Wed, 8 Nov 2023 00:38:22 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id D6AB220B74C3; Tue, 7 Nov 2023 15:38:21 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com D6AB220B74C3 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1699400301; bh=ZcskPol9UlP6RkArgRTmBSIESOZHxbyLSA6ELh/ZVJU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mOvyjXh+mvli49vmumKa9t0lcPo0G1So39kutTKYeGaQzpclkBJhHhWplmMmII8xU ZoVI+F59wvGaaF1QU7qgbm2nwtPD0HmHAB5OrfITC0+esJbnWXGq0wlwBcLAifVGBr wzKoIxrN5HqGiZEi0L6nXjqvzI2r9/6xO+K0xgmQ= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Cristian Dumitrescu , David Hunt , Honnappa Nagarahalli , Ruifeng Wang , Sameh Gobriel , Tyler Retzlaff , Vladimir Medvedkin , Yipeng Wang , mb@smartsharesystems.com Subject: [PATCH v3 3/7] member: use abstracted bit count functions Date: Tue, 7 Nov 2023 15:38:16 -0800 Message-Id: <1699400300-22545-4-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> References: <1698887132-5347-1-git-send-email-roretzla@linux.microsoft.com> <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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 --- lib/member/rte_member_vbf.c | 12 ++++++------ lib/member/rte_member_x86.h | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/member/rte_member_vbf.c b/lib/member/rte_member_vbf.c index 9df4620..5a0c51e 100644 --- a/lib/member/rte_member_vbf.c +++ b/lib/member/rte_member_vbf.c @@ -108,8 +108,8 @@ * div_shift is used for division shift, to be divided by number of bits * represented by a uint32_t variable */ - ss->mul_shift = __builtin_ctzl(ss->num_set); - ss->div_shift = __builtin_ctzl(32 >> ss->mul_shift); + ss->mul_shift = rte_ctz32(ss->num_set); + ss->div_shift = rte_ctz32(32 >> ss->mul_shift); RTE_MEMBER_LOG(DEBUG, "vector bloom filter created, " "each bloom filter expects %u keys, needs %u bits, %u hashes, " @@ -174,7 +174,7 @@ } if (mask) { - *set_id = __builtin_ctzl(mask) + 1; + *set_id = rte_ctz32(mask) + 1; return 1; } @@ -207,7 +207,7 @@ } for (i = 0; i < num_keys; i++) { if (mask[i]) { - set_ids[i] = __builtin_ctzl(mask[i]) + 1; + set_ids[i] = rte_ctz32(mask[i]) + 1; num_matches++; } else set_ids[i] = RTE_MEMBER_NO_MATCH; @@ -233,7 +233,7 @@ mask &= test_bit(bit_loc, ss); } while (mask) { - uint32_t loc = __builtin_ctzl(mask); + uint32_t loc = rte_ctz32(mask); set_id[num_matches] = loc + 1; num_matches++; if (num_matches >= match_per_key) @@ -272,7 +272,7 @@ for (i = 0; i < num_keys; i++) { match_cnt_t = 0; while (mask[i]) { - uint32_t loc = __builtin_ctzl(mask[i]); + uint32_t loc = rte_ctz32(mask[i]); set_ids[i * match_per_key + match_cnt_t] = loc + 1; match_cnt_t++; if (match_cnt_t >= match_per_key) diff --git a/lib/member/rte_member_x86.h b/lib/member/rte_member_x86.h index 74c8e38..d115151 100644 --- a/lib/member/rte_member_x86.h +++ b/lib/member/rte_member_x86.h @@ -22,7 +22,7 @@ _mm256_load_si256((__m256i const *)buckets[bucket_id].sigs), _mm256_set1_epi16(tmp_sig))); if (hitmask) { - uint32_t hit_idx = __builtin_ctzl(hitmask) >> 1; + uint32_t hit_idx = rte_ctz32(hitmask) >> 1; buckets[bucket_id].sets[hit_idx] = set_id; return 1; } @@ -38,7 +38,7 @@ _mm256_load_si256((__m256i const *)buckets[bucket_id].sigs), _mm256_set1_epi16(tmp_sig))); while (hitmask) { - uint32_t hit_idx = __builtin_ctzl(hitmask) >> 1; + uint32_t hit_idx = rte_ctz32(hitmask) >> 1; if (buckets[bucket_id].sets[hit_idx] != RTE_MEMBER_NO_MATCH) { *set_id = buckets[bucket_id].sets[hit_idx]; return 1; @@ -59,7 +59,7 @@ _mm256_load_si256((__m256i const *)buckets[bucket_id].sigs), _mm256_set1_epi16(tmp_sig))); while (hitmask) { - uint32_t hit_idx = __builtin_ctzl(hitmask) >> 1; + uint32_t hit_idx = rte_ctz32(hitmask) >> 1; if (buckets[bucket_id].sets[hit_idx] != RTE_MEMBER_NO_MATCH) { set_id[*counter] = buckets[bucket_id].sets[hit_idx]; (*counter)++; From patchwork Tue Nov 7 23:38:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 133955 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 42C2C432CC; Wed, 8 Nov 2023 00:38:35 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EAFE540041; Wed, 8 Nov 2023 00:38:26 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 9C0AB40DDC for ; Wed, 8 Nov 2023 00:38:22 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id E4EA820B74C4; Tue, 7 Nov 2023 15:38:21 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E4EA820B74C4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1699400301; bh=uKEGi0ejpYKKgvp84kKllYei9w9cTolmgccmjfgGSL8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Rbbe+aB4sTvwEMYRaea08y4ajXnlz7wccgN2ZJ6ysS+TkcUi7Uw2BUgUsrLm2mUlF VpgBJRWa+Rbt7dmIE/n0IOPsH4Be5+perxaJG34zYns4obifHiuYwy1tdF9DXM7MZi uCkZRIpUOBVsLoRlGVa+rsaw87fktMaIJQ9+Mwuo= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Cristian Dumitrescu , David Hunt , Honnappa Nagarahalli , Ruifeng Wang , Sameh Gobriel , Tyler Retzlaff , Vladimir Medvedkin , Yipeng Wang , mb@smartsharesystems.com Subject: [PATCH v3 4/7] rcu: use abstracted bit count functions Date: Tue, 7 Nov 2023 15:38:17 -0800 Message-Id: <1699400300-22545-5-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> References: <1698887132-5347-1-git-send-email-roretzla@linux.microsoft.com> <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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 --- 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); From patchwork Tue Nov 7 23:38:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 133960 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B108A432CC; Wed, 8 Nov 2023 00:39:01 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C477242DC3; Wed, 8 Nov 2023 00:38:32 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 3CE87402C9 for ; Wed, 8 Nov 2023 00:38:23 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id F264A20B74C5; Tue, 7 Nov 2023 15:38:21 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com F264A20B74C5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1699400301; bh=r7yhS2UiNcvKpcW37mtATJ8B7teiiKRHl+EynwkW4C0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=DzwTNgorCz4E1+UPEX6mO5vbgvYSrQ1R32RPJUp3UojW+rGnQTsFdRiqxO/OLcVJ/ QbOy19Epf1G+nWko+EGubYlN/yPvLFADA0gvs5WbI5No3rYtW/xoUW1hvYED5pJLHC EdLqLycCNlEcW4/hqBUpfLRKcHXiV/2QJUV97w/s= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Cristian Dumitrescu , David Hunt , Honnappa Nagarahalli , Ruifeng Wang , Sameh Gobriel , Tyler Retzlaff , Vladimir Medvedkin , Yipeng Wang , mb@smartsharesystems.com Subject: [PATCH v3 5/7] table: use abstracted bit count functions Date: Tue, 7 Nov 2023 15:38:18 -0800 Message-Id: <1699400300-22545-6-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> References: <1698887132-5347-1-git-send-email-roretzla@linux.microsoft.com> <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Use rte_clz32 or rte_clz64 respectively instead of __builtin_clzl depending on the resultant type of the expression passed as an argument 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 --- lib/table/rte_lru_arm64.h | 3 ++- lib/table/rte_swx_table_em.c | 4 ++-- lib/table/rte_table_hash_ext.c | 4 ++-- lib/table/rte_table_hash_lru.c | 4 ++-- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/table/rte_lru_arm64.h b/lib/table/rte_lru_arm64.h index add889a..f19b0bd 100644 --- a/lib/table/rte_lru_arm64.h +++ b/lib/table/rte_lru_arm64.h @@ -11,6 +11,7 @@ #include #include +#include #ifndef RTE_TABLE_HASH_LRU_STRATEGY #ifdef __ARM_NEON @@ -33,7 +34,7 @@ uint16x4_t min_vec = vmov_n_u16(vminv_u16(lru_vec)); uint64_t mask = vget_lane_u64(vreinterpret_u64_u16( vceq_u16(min_vec, lru_vec)), 0); - return __builtin_clzl(mask) >> 4; + return rte_clz64(mask) >> 4; } #define lru_pos(bucket) f_lru_pos(bucket->lru_list) diff --git a/lib/table/rte_swx_table_em.c b/lib/table/rte_swx_table_em.c index 84837c8..2f042d7 100644 --- a/lib/table/rte_swx_table_em.c +++ b/lib/table/rte_swx_table_em.c @@ -260,8 +260,8 @@ struct table { if (!params->hash_func) t->params.hash_func = rte_hash_crc; - t->key_size_shl = __builtin_ctzl(key_size); - t->data_size_shl = __builtin_ctzl(key_data_size); + t->key_size_shl = rte_ctz32(key_size); + t->data_size_shl = rte_ctz32(key_data_size); t->n_buckets = n_buckets; t->n_buckets_ext = n_buckets_ext; t->total_size = total_size; diff --git a/lib/table/rte_table_hash_ext.c b/lib/table/rte_table_hash_ext.c index 51a20ac..9f0220d 100644 --- a/lib/table/rte_table_hash_ext.c +++ b/lib/table/rte_table_hash_ext.c @@ -243,8 +243,8 @@ struct rte_table_hash { /* Internal */ t->bucket_mask = t->n_buckets - 1; - t->key_size_shl = __builtin_ctzl(p->key_size); - t->data_size_shl = __builtin_ctzl(entry_size); + t->key_size_shl = rte_ctz32(p->key_size); + t->data_size_shl = rte_ctz32(entry_size); /* Tables */ key_mask_offset = 0; diff --git a/lib/table/rte_table_hash_lru.c b/lib/table/rte_table_hash_lru.c index a4e1a05..758ec4f 100644 --- a/lib/table/rte_table_hash_lru.c +++ b/lib/table/rte_table_hash_lru.c @@ -220,8 +220,8 @@ struct rte_table_hash { /* Internal */ t->bucket_mask = t->n_buckets - 1; - t->key_size_shl = __builtin_ctzl(p->key_size); - t->data_size_shl = __builtin_ctzl(entry_size); + t->key_size_shl = rte_ctz32(p->key_size); + t->data_size_shl = rte_ctz32(entry_size); /* Tables */ key_mask_offset = 0; From patchwork Tue Nov 7 23:38:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 133958 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BEE32432CC; Wed, 8 Nov 2023 00:38:51 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9066442DAC; Wed, 8 Nov 2023 00:38:30 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 314754026D for ; Wed, 8 Nov 2023 00:38:23 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 0C49620B74C6; Tue, 7 Nov 2023 15:38:21 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 0C49620B74C6 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1699400302; bh=AmqIsTs5cM3FAUTzPPVIkrmOdtm4gZtgysow80ychoQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gyoMHjgZsDZJlh4SPYB/OuBnqonaoSneR7Q97LoohMJ/kWjcuBN4iExg18tq9vZ8T B7rv/qeAWpc6m6lGWSqHz4CpPaT6A6qVFQH737bL8fPafPyb2/vutiMlIC/I+QB3xJ 8R/CxjYWqXGNXfGjRtro8xqiGUz8GZ1/EXI59hzk= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Cristian Dumitrescu , David Hunt , Honnappa Nagarahalli , Ruifeng Wang , Sameh Gobriel , Tyler Retzlaff , Vladimir Medvedkin , Yipeng Wang , mb@smartsharesystems.com Subject: [PATCH v3 6/7] distributor: use abstracted bit count functions Date: Tue, 7 Nov 2023 15:38:19 -0800 Message-Id: <1699400300-22545-7-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> References: <1698887132-5347-1-git-send-email-roretzla@linux.microsoft.com> <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Use rte_popcount64 instead of __builtin_popcountl where the argument type passed to the intrinsic was 64-bits. Signed-off-by: Tyler Retzlaff --- lib/distributor/rte_distributor_single.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/distributor/rte_distributor_single.c b/lib/distributor/rte_distributor_single.c index 08144e5..84d88e3 100644 --- a/lib/distributor/rte_distributor_single.c +++ b/lib/distributor/rte_distributor_single.c @@ -341,7 +341,7 @@ struct rte_mbuf * { unsigned wkr, total_outstanding; - total_outstanding = __builtin_popcountl(d->in_flight_bitmask); + total_outstanding = rte_popcount64(d->in_flight_bitmask); for (wkr = 0; wkr < d->num_workers; wkr++) total_outstanding += d->backlog[wkr].count; From patchwork Tue Nov 7 23:38:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 133959 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D072D432CC; Wed, 8 Nov 2023 00:38:56 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A994542DC0; Wed, 8 Nov 2023 00:38:31 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 5869F410E3 for ; Wed, 8 Nov 2023 00:38:23 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 19C6E20B74C7; Tue, 7 Nov 2023 15:38:21 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 19C6E20B74C7 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1699400302; bh=hq/EiDp3vI9Cp6bD90Ccv748l6CY9oHzLLUrelrWjaw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Erl9d1ULH5IHHjb9M6+ppCk4jHRxv51dO5ty+JFOnfsCDRETnToeM2NWR2jP8Wit0 sSnJWO3DZD9ye3BZeQqsVcIlDelAQ/kq3fakonsGQFVfAKVrfNUpQLkLNZqbk9MJGN 5gY0N1eGLjjT++JFq1S1ZzVlNhYGWT3pjbuM+Wfo= From: Tyler Retzlaff To: dev@dpdk.org Cc: Bruce Richardson , Cristian Dumitrescu , David Hunt , Honnappa Nagarahalli , Ruifeng Wang , Sameh Gobriel , Tyler Retzlaff , Vladimir Medvedkin , Yipeng Wang , mb@smartsharesystems.com Subject: [PATCH v3 7/7] hash: use abstracted bit count functions Date: Tue, 7 Nov 2023 15:38:20 -0800 Message-Id: <1699400300-22545-8-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> References: <1698887132-5347-1-git-send-email-roretzla@linux.microsoft.com> <1699400300-22545-1-git-send-email-roretzla@linux.microsoft.com> X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Use rte_popcount64 instead of __builtin_popcountl where the argument type passed to the intrinsic was 64-bits. Signed-off-by: Tyler Retzlaff --- lib/hash/rte_cuckoo_hash.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/hash/rte_cuckoo_hash.c b/lib/hash/rte_cuckoo_hash.c index 19ee53a..ccdc3b9 100644 --- a/lib/hash/rte_cuckoo_hash.c +++ b/lib/hash/rte_cuckoo_hash.c @@ -2357,7 +2357,7 @@ struct rte_hash * __rte_hash_lookup_bulk(h, keys, num_keys, positions, hit_mask, data); /* Return number of hits */ - return __builtin_popcountl(*hit_mask); + return rte_popcount64(*hit_mask); } @@ -2474,7 +2474,7 @@ struct rte_hash * positions, hit_mask, data); /* Return number of hits */ - return __builtin_popcountl(*hit_mask); + return rte_popcount64(*hit_mask); } int32_t