From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 160644288E;
	Sat,  1 Apr 2023 02:45:18 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 3B79B41153;
	Sat,  1 Apr 2023 02:45:13 +0200 (CEST)
Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182])
 by mails.dpdk.org (Postfix) with ESMTP id 5F01440DD8
 for <dev@dpdk.org>; Sat,  1 Apr 2023 02:45:10 +0200 (CEST)
Received: by linux.microsoft.com (Postfix, from userid 1086)
 id 6A41A20FFE06; Fri, 31 Mar 2023 17:45:09 -0700 (PDT)
DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 6A41A20FFE06
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;
 s=default; t=1680309909;
 bh=H7x8aI5GMQZLgQluvCjYuamhvlDpNgzPNKdo03BieWg=;
 h=From:To:Cc:Subject:Date:In-Reply-To:References:From;
 b=C38r5E+Dhiebbdtl7yQNaHBYUYCXtWG/23XQh/rnGuBb+JNEvc3dALPRDkpzN/Svh
 bOgLd1bIGNrkVvoMvDSI3kXytfzR79d97eIV0w1KwbVImcz1J56ELEMhmZgjpCmzNa
 Tkpx5fl7nRuXrUTaHo2h3jOUmA+aoxyP6dTgkm+Q=
From: Tyler Retzlaff <roretzla@linux.microsoft.com>
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 <roretzla@linux.microsoft.com>
Subject: [PATCH v7 0/4] eal: provide abstracted bit counting functions
Date: Fri, 31 Mar 2023 17:45:03 -0700
Message-Id: <1680309907-30879-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
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=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:
Morten Brørup and 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.

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 <stdio.h>

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 (4):
  eal: move bit count functions to bitops header
  eal: provide abstracted bit count functions
  pipeline: add include of bitops
  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

-- 
1.8.3.1