From patchwork Tue Apr 4 00:11:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tyler Retzlaff X-Patchwork-Id: 125741 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 10F5F428C1; Tue, 4 Apr 2023 02:12:02 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9733A4067E; Tue, 4 Apr 2023 02:12:01 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 8DAF94067E for ; Tue, 4 Apr 2023 02:12:00 +0200 (CEST) Received: by linux.microsoft.com (Postfix, from userid 1086) id B6B33210DC68; Mon, 3 Apr 2023 17:11:59 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com B6B33210DC68 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1680567119; bh=arZSNe9njFJmu4NqskmSNpWCfNR53SQdryxjeuZX0/g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cZgYmpwXfgy/tZ3BmBg/Y2wRC3sWAvEyNCP/AKOBedlERbzPE2HltDJ2+VK0UTasL RpnTd+C116zTbqHTqaJDeQ1Yw98FvSQGDB35ZSjKTmQMb2MP4NKfUDJqK8eE0w9iBC Y20m6f1nfnKpsXFQz5vMFuhwZtLUVXTxjqDaMH4s= From: Tyler Retzlaff To: dev@dpdk.org Cc: thomas@monjalon.net, stephen@networkplumber.org, mb@smartsharesystems.com, bruce.richardson@intel.com, ferruh.yigit@amd.com, david.marchand@redhat.com, Tyler Retzlaff Subject: [PATCH v8 0/3] eal: provide abstracted bit counting functions Date: Mon, 3 Apr 2023 17:11:55 -0700 Message-Id: <1680567118-6435-1-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1669241687-18810-1-git-send-email-roretzla@linux.microsoft.com> References: <1669241687-18810-1-git-send-email-roretzla@linux.microsoft.com> MIME-Version: 1.0 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 As discussed technical board meeting 2023-02-22 http://mails.dpdk.org/archives/dev/2023-February/263516.html We will bring support in pieces for the MSVC compiler, there will be some abstractions and functions introduced before the compiler is capable of compiling DPDK in order to make parallel progress while waiting for standard atomics in 23.07. A higher level plan / order of work is available in the Microsoft roadmap for 23.07 and 23.11. note: Bruce Richardson previous acks have been preserved but be aware of the two additional functions introduced in v7. If you wish to withdraw your ack, please let me know but I believe the 2 additions are consistent with previous. v8: * squish patch including rte_bitops.h in lib/pipeline into first patch. v7: * add 2 additional counting functions rte_popcount{32,64} including basic unit tests * fix patch 1 title link (CI complained too long) * add test_bitcount.c entry to MAINTAINERS file v6: * remove stray #include v5: * fix implementation of msvc versions of rte_clz{32,64} incorrect use of _BitscanReverse{,64} index. * fix and expand unit test to exercise full range of counting over uint{32,64}_t input values. (which would have caught above mistake). * reduce commit title length * correct commit author v4: * combine unit test commit into function addition commit v3: * rename to use 32/64 instead of l/ll suffixes * add new functions to rte_bitops.h instead of new header * move other bit functions from rte_common.h to rte_bitops.h v2: * use unsigned int instead of unsigned (checkpatches) * match multiple include guard naming convention to rte_common.h * add explicit extern "C" linkage to rte_bitcount.h note: not really needed but checkpatches required * add missing space around '-' Tyler Retzlaff (3): eal: move bit count functions to bitops header eal: provide abstracted bit count functions maintainers: add bitcount test under EAL API and common code MAINTAINERS | 1 + app/test/meson.build | 2 + app/test/test_bitcount.c | 136 ++++++++ app/test/test_common.c | 1 + lib/eal/common/rte_reciprocal.c | 1 + lib/eal/include/rte_bitops.h | 532 +++++++++++++++++++++++++++++++ lib/eal/include/rte_common.h | 293 ----------------- lib/pipeline/rte_swx_pipeline_internal.h | 1 + 8 files changed, 674 insertions(+), 293 deletions(-) create mode 100644 app/test/test_bitcount.c