From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id ED87F42F9B; Tue, 1 Aug 2023 19:07:33 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7A9EE40F16; Tue, 1 Aug 2023 19:07:33 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 6758040A89 for ; Tue, 1 Aug 2023 19:07:32 +0200 (CEST) Received: by linux.microsoft.com (Postfix, from userid 1086) id 97670238AE93; Tue, 1 Aug 2023 10:07:31 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 97670238AE93 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1690909651; bh=EE52bvOUvGj+0LFGqQsYroHaPaQEEJlzT/BgjiBEqR0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=sWkDKB92kTCzqJMlnc81HamK3gY2aI98QYTnfaHvVqkZ/J+dyaGMgw4DhTI7aluQN 1agr84icuMqm8ULIYHxaLj3qd7Xr166GvHxSf/T6e/ygV/sa/2xyFzVNBQDeCm9Lqp fs8z3+Luo3g/mVz9YrZCLwjafXxJPe3h8ia1GgSQ= Date: Tue, 1 Aug 2023 10:07:31 -0700 From: Tyler Retzlaff To: dev@dpdk.org Cc: Gaetan Rivet , Bruce Richardson , Thomas Monjalon , Nicolas Chautru , Yipeng Wang , Sameh Gobriel , Vladimir Medvedkin , Honnappa Nagarahalli , Konstantin Ananyev , Anatoly Burakov , Olivier Matz , Andrew Rybchenko , Joyce Kong , Erik Gabriel Carrillo , Liang Ma , Peter Mccarthy , Jerin Jacob , Maciej Czekaj , David Hunt , Ruifeng Wang , Min Zhou , David Christensen , Stanislaw Kardach , david.marchand@redhat.com, stephen@networkplumber.org, mb@smartsharesystems.com Subject: Re: [PATCH v2 0/4] eal: update public API to use stdatomic atomics Message-ID: <20230801170731.GB23300@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> References: <1690837661-27573-1-git-send-email-roretzla@linux.microsoft.com> <1690866234-28365-1-git-send-email-roretzla@linux.microsoft.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1690866234-28365-1-git-send-email-roretzla@linux.microsoft.com> User-Agent: Mutt/1.5.21 (2010-09-15) 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 top post just a heads up on this series, please defer review until v3 is submitted. clang is stricter in atomic type enforcement than gcc so a new revision is needed that removes the direct use of intrinsics replacing them with the standard atomics for all _Atomic types. thanks On Mon, Jul 31, 2023 at 10:03:50PM -0700, Tyler Retzlaff wrote: > Update EAL public API to use standard C11 atomics. In accordance with > technical board discussion February 2023. > http://mails.dpdk.org/archives/dev/2023-February/263516.html > > This initial series makes no attempt to adapt every use of builtin atomics > from GCC it intends only to adapt the public API of the EAL presented as > a compatibility surface to applications. > > Further series will be submitted to adapt the rest of DPDK to use standard > atomics that are 'internal' and not do not straddle the EAL API. > > The choice has been made to break these two changes apart to allow more > precise analysis of any potential performance impact this change or > subsequent changes may introduce. > > Additionally, it is not possible to break the commits up per driver/lib as > both the provider and consumer of the APIs need to be changed in the same > commit to maintain non-broken build and function. > > Finally, the first patch in this series is a duplication of Bruce Richardson > series https://patchwork.dpdk.org/project/dpdk/list/?series=29048 and is > only being provided to enable the CI run on this series. It is expected that > Bruce's series when committed will allow the build: require minimum c11 compiler > here to be dropped from this series. > > v2: > * remove volatile qualification from variables, structure fields and > parameters that have been qualified _Atomic > * restore removal of #include in rte_ring_core.h the ring > library still uses other rte_atomic APIs and types that are not replaced > by the standard or compiler intrinsics > * add missing adaption to stdatomic in ring/rte_ring_c11_pvt.h > > Tyler Retzlaff (4): > build: require minimum c11 compiler > devtools: forbid use of GCC atomic builtins > eal: adapt rte pause APIs to use C11 atomics > eal: adapt rte spinlock and rwlock APIs to use C11 atomics > > app/test-bbdev/test_bbdev_perf.c | 123 ++++++++++++++++++++----------- > app/test/test_func_reentrancy.c | 8 +- > app/test/test_mcslock.c | 12 +-- > app/test/test_mempool_perf.c | 8 +- > app/test/test_pflock.c | 12 +-- > app/test/test_pmd_perf.c | 10 +-- > app/test/test_ring_perf.c | 8 +- > app/test/test_rwlock.c | 8 +- > app/test/test_spinlock.c | 8 +- > app/test/test_stack_perf.c | 12 +-- > app/test/test_ticketlock.c | 8 +- > app/test/test_timer.c | 16 ++-- > devtools/checkpatches.sh | 8 ++ > drivers/event/opdl/opdl_ring.c | 47 ++++++------ > drivers/net/failsafe/meson.build | 1 - > drivers/net/thunderx/nicvf_rxtx.c | 5 +- > drivers/net/thunderx/nicvf_struct.h | 2 +- > lib/bpf/bpf_pkt.c | 4 +- > lib/distributor/distributor_private.h | 2 +- > lib/distributor/rte_distributor_single.c | 44 +++++------ > lib/eal/arm/include/rte_pause_64.h | 28 +++---- > lib/eal/common/eal_common_errno.c | 1 + > lib/eal/common/eal_memcfg.h | 2 +- > lib/eal/include/generic/rte_pause.h | 52 ++++++------- > lib/eal/include/generic/rte_rwlock.h | 46 ++++++------ > lib/eal/include/generic/rte_spinlock.h | 21 +++--- > lib/eal/include/rte_mcslock.h | 12 +-- > lib/eal/include/rte_pflock.h | 22 +++--- > lib/eal/include/rte_ticketlock.h | 8 +- > lib/eal/loongarch/include/rte_pause.h | 2 - > lib/eal/ppc/include/rte_pause.h | 2 - > lib/eal/riscv/include/rte_pause.h | 2 - > lib/eal/x86/include/rte_spinlock.h | 2 +- > lib/ring/rte_ring_c11_pvt.h | 28 +++---- > lib/ring/rte_ring_core.h | 4 +- > lib/ring/rte_ring_generic_pvt.h | 19 +++-- > lib/ring/rte_ring_peek_elem_pvt.h | 2 +- > meson.build | 1 + > 38 files changed, 326 insertions(+), 274 deletions(-) > > -- > 1.8.3.1