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 EA77C42C44; Tue, 6 Jun 2023 23:46:01 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CD90C42D0B; Tue, 6 Jun 2023 23:45:53 +0200 (CEST) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id B8FB440223 for ; Tue, 6 Jun 2023 23:45:49 +0200 (CEST) Received: by linux.microsoft.com (Postfix, from userid 1086) id CDDAF20BE494; Tue, 6 Jun 2023 14:45:48 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com CDDAF20BE494 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1686087948; bh=kjJ5Vj4vPD4vNYDe8JMq/EwhPf1kHSAAUSkKLp+NO3k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C1wHhsRt1W3/Pv+lwNm/DraSpqnKxFSYcrKpFZKAyS1g9X8fu8i64lAQy6a58Ahws I3f2Gsc2WaV9qsB/OyfeAOmkwNVBKrUkNT3GsbuN2QE0TwbnA29OW7kC2quEDlmc+F mIf/Gs65j+CoX2E4Wo+8yxL/5osgQi9Fh6Ar2TrQ= From: Tyler Retzlaff To: dev@dpdk.org, david.marchand@redhat.com Cc: Olivier Matz , Bruce Richardson , Kevin Laatz , Qiming Yang , Qi Zhang , Wenjun Wu , Tetsuya Mukawa , Honnappa.Nagarahalli@arm.com, thomas@monjalon.net, Tyler Retzlaff Subject: [PATCH v5 0/6] replace rte atomics with GCC builtin atomics Date: Tue, 6 Jun 2023 14:45:41 -0700 Message-Id: <1686087947-15471-1-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679084388-19267-1-git-send-email-roretzla@linux.microsoft.com> References: <1679084388-19267-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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Replace the use of rte_atomic.h types and functions, instead use GCC supplied C++11 memory model builtins. This series covers the libraries and drivers that are built on Windows. The code has be converted to use the __atomic builtins but there are additional during conversion I notice that there may be some issues that need to be addressed. I'll comment in the patches where my concerns are so the maintainers may comment. v5: * use relaxed ordering for counter increments in net/ring patch * remove note comments from net/ring patch v4: * drop patch for lib/ring it will be provided by ARM / Honnappa * rebase for changes in dma/idxd merge * adapt __atomic_fetch_sub(...) - 1 == 0 to be (__atomic_fetch_sub(...) == 1) as per feedback. * drop one /* NOTE: review for potential ordering optimization */ since the note reference non-critical to perf control path. note: Remainder of the NOTE comments have been retained since there seems to be no consensus but stronger opinion/argument to keep expressed. while I generally agree that changes should not include ``TODO'' style comments I also agree that without these comments in your face people are very unlikely to feel compelled to make the review they are trying to solicit without them. if it is absolute that the series won't be merged with them then I will remove them, but please be explicit soon. v3: * style, don't use c99 comments v2: * comment code where optimizations may be possible now that memory order can be specified. * comment code where operations should potentially be atomic so that maintainers can review. * change a couple of variables labeled as counters to be unsigned. Tyler Retzlaff (6): stack: replace rte atomics with GCC builtin atomics dma/idxd: replace rte atomics with GCC builtin atomics net/ice: replace rte atomics with GCC builtin atomics net/ixgbe: replace rte atomics with GCC builtin atomics net/null: replace rte atomics with GCC builtin atomics net/ring: replace rte atomics with GCC builtin atomics drivers/dma/idxd/idxd_internal.h | 3 +-- drivers/dma/idxd/idxd_pci.c | 11 ++++++----- drivers/net/ice/ice_dcf.c | 1 - drivers/net/ice/ice_dcf_ethdev.c | 1 - drivers/net/ice/ice_ethdev.c | 12 ++++++++---- drivers/net/ixgbe/ixgbe_bypass.c | 1 - drivers/net/ixgbe/ixgbe_ethdev.c | 18 ++++++++++++------ drivers/net/ixgbe/ixgbe_ethdev.h | 3 ++- drivers/net/ixgbe/ixgbe_flow.c | 1 - drivers/net/ixgbe/ixgbe_rxtx.c | 1 - drivers/net/null/rte_eth_null.c | 28 ++++++++++++++++++---------- drivers/net/ring/rte_eth_ring.c | 20 ++++++++++---------- lib/stack/rte_stack_lf_generic.h | 16 +++++++++------- 13 files changed, 66 insertions(+), 50 deletions(-) -- 1.8.3.1