Message ID | 1710967892-7046-1-git-send-email-roretzla@linux.microsoft.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 5012243D09; Wed, 20 Mar 2024 21:51:36 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 01BFE402DD; Wed, 20 Mar 2024 21:51:36 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 3D3CB402C7 for <dev@dpdk.org>; Wed, 20 Mar 2024 21:51:34 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 3107820B74C0; Wed, 20 Mar 2024 13:51:33 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 3107820B74C0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1710967893; bh=zS3du7NeNigSynDrhlKtpI0RG2DikVTPEfT+TPCvR84=; h=From:To:Cc:Subject:Date:From; b=Jyv6FrXcL0Swiw0eB+6pnWcIv2u9Jo21xcMj+/WPlYE6Y1+xWhoqq7S422NiKMUpo xqya8wjzlfRTA/xxrojOGhOHbUaPoYQEi5lV1hk9JRMhpeoOYIgAEYDQxrHNT66VdQ wbUo6Mcit9kUqN4VkxnCNqCXpHuHiiofIkIvrp3w= From: Tyler Retzlaff <roretzla@linux.microsoft.com> To: dev@dpdk.org Cc: =?utf-8?q?Mattias_R=C3=B6nnblom?= <mattias.ronnblom@ericsson.com>, =?utf-8?q?Morten_Br=C3=B8rup?= <mb@smartsharesystems.com>, Abdullah Sevincer <abdullah.sevincer@intel.com>, Ajit Khaparde <ajit.khaparde@broadcom.com>, Alok Prasad <palok@marvell.com>, Anatoly Burakov <anatoly.burakov@intel.com>, Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>, Anoob Joseph <anoobj@marvell.com>, Bruce Richardson <bruce.richardson@intel.com>, Byron Marohn <byron.marohn@intel.com>, Chenbo Xia <chenbox@nvidia.com>, Chengwen Feng <fengchengwen@huawei.com>, Ciara Loftus <ciara.loftus@intel.com>, Ciara Power <ciara.power@intel.com>, Dariusz Sosnowski <dsosnowski@nvidia.com>, David Hunt <david.hunt@intel.com>, Devendra Singh Rawat <dsinghrawat@marvell.com>, Erik Gabriel Carrillo <erik.g.carrillo@intel.com>, Guoyang Zhou <zhouguoyang@huawei.com>, Harman Kalra <hkalra@marvell.com>, Harry van Haaren <harry.van.haaren@intel.com>, Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>, Jakub Grajciar <jgrajcia@cisco.com>, Jerin Jacob <jerinj@marvell.com>, Jeroen de Borst <jeroendb@google.com>, Jian Wang <jianwang@trustnetic.com>, Jiawen Wu <jiawenwu@trustnetic.com>, Jie Hai <haijie1@huawei.com>, Jingjing Wu <jingjing.wu@intel.com>, Joshua Washington <joshwash@google.com>, Joyce Kong <joyce.kong@arm.com>, Junfeng Guo <junfeng.guo@intel.com>, Kevin Laatz <kevin.laatz@intel.com>, Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>, Liang Ma <liangma@liangbit.com>, Long Li <longli@microsoft.com>, Maciej Czekaj <mczekaj@marvell.com>, Matan Azrad <matan@nvidia.com>, Maxime Coquelin <maxime.coquelin@redhat.com>, Nicolas Chautru <nicolas.chautru@intel.com>, Ori Kam <orika@nvidia.com>, Pavan Nikhilesh <pbhagavatula@marvell.com>, Peter Mccarthy <peter.mccarthy@intel.com>, Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>, Reshma Pattan <reshma.pattan@intel.com>, Rosen Xu <rosen.xu@intel.com>, Ruifeng Wang <ruifeng.wang@arm.com>, Rushil Gupta <rushilg@google.com>, Sameh Gobriel <sameh.gobriel@intel.com>, Sivaprasad Tummala <sivaprasad.tummala@amd.com>, Somnath Kotur <somnath.kotur@broadcom.com>, Stephen Hemminger <stephen@networkplumber.org>, Suanming Mou <suanmingm@nvidia.com>, Sunil Kumar Kori <skori@marvell.com>, Sunil Uttarwar <sunilprakashrao.uttarwar@amd.com>, Tetsuya Mukawa <mtetsuyah@gmail.com>, Vamsi Attunuru <vattunuru@marvell.com>, Viacheslav Ovsiienko <viacheslavo@nvidia.com>, Vladimir Medvedkin <vladimir.medvedkin@intel.com>, Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>, Yipeng Wang <yipeng1.wang@intel.com>, Yisen Zhuang <yisen.zhuang@huawei.com>, Yuying Zhang <Yuying.Zhang@intel.com>, Yuying Zhang <yuying.zhang@intel.com>, Ziyang Xuan <xuanziyang2@huawei.com>, Tyler Retzlaff <roretzla@linux.microsoft.com> Subject: [PATCH 00/46] use stdatomic API Date: Wed, 20 Mar 2024 13:50:46 -0700 Message-Id: <1710967892-7046-1-git-send-email-roretzla@linux.microsoft.com> X-Mailer: git-send-email 1.8.3.1 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 |
Series |
use stdatomic API
|
|
Message
Tyler Retzlaff
March 20, 2024, 8:50 p.m. UTC
This series converts all non-generic built atomics to use the rte_atomic macros that allow optional enablement of standard C11 atomics. Use of generic atomics for non-scalar types are not converted in this change and will be evaluated as a part of a separate series. Note if this series ends up requiring too much rebasing due to tree churn before it is merged i will break it up into smaller series. Tyler Retzlaff (46): net/mlx5: use rte stdatomic API net/ixgbe: use rte stdatomic API net/iavf: use rte stdatomic API net/ice: use rte stdatomic API net/i40e: use rte stdatomic API net/hns3: use rte stdatomic API net/bnxt: use rte stdatomic API net/cpfl: use rte stdatomic API net/af_xdp: use rte stdatomic API net/octeon_ep: use rte stdatomic API net/octeontx: use rte stdatomic API net/cxgbe: use rte stdatomic API net/gve: use rte stdatomic API net/memif: use rte stdatomic API net/sfc: use rte stdatomic API net/thunderx: use rte stdatomic API net/virtio: use rte stdatomic API net/hinic: use rte stdatomic API net/idpf: use rte stdatomic API net/qede: use rte stdatomic API net/ring: use rte stdatomic API vdpa/mlx5: use rte stdatomic API raw/ifpga: use rte stdatomic API event/opdl: use rte stdatomic API event/octeontx: use rte stdatomic API event/dsw: use rte stdatomic API dma/skeleton: use rte stdatomic API crypto/octeontx: use rte stdatomic API common/mlx5: use rte stdatomic API common/idpf: use rte stdatomic API common/iavf: use rte stdatomic API baseband/acc: use rte stdatomic API net/txgbe: use rte stdatomic API net/null: use rte stdatomic API event/dlb2: use rte stdatomic API dma/idxd: use rte stdatomic API crypto/ccp: use rte stdatomic API common/cpt: use rte stdatomic API bus/vmbus: use rte stdatomic API examples: use rte stdatomic API app/dumpcap: use rte stdatomic API app/test: use rte stdatomic API app/test-eventdev: use rte stdatomic API app/test-crypto-perf: use rte stdatomic API app/test-compress-perf: use rte stdatomic API app/test-bbdev: use rte stdatomic API app/dumpcap/main.c | 12 +- app/test-bbdev/test_bbdev_perf.c | 183 +++++++++++++-------- app/test-compress-perf/comp_perf_test_common.h | 2 +- app/test-compress-perf/comp_perf_test_cyclecount.c | 4 +- app/test-compress-perf/comp_perf_test_throughput.c | 10 +- app/test-compress-perf/comp_perf_test_verify.c | 6 +- app/test-crypto-perf/cperf_test_latency.c | 6 +- app/test-crypto-perf/cperf_test_pmd_cyclecount.c | 10 +- app/test-crypto-perf/cperf_test_throughput.c | 10 +- app/test-crypto-perf/cperf_test_verify.c | 10 +- app/test-eventdev/test_order_atq.c | 4 +- app/test-eventdev/test_order_common.c | 5 +- app/test-eventdev/test_order_common.h | 8 +- app/test-eventdev/test_order_queue.c | 4 +- app/test-eventdev/test_perf_common.h | 6 +- app/test/test_bpf.c | 46 ++++-- app/test/test_distributor.c | 114 ++++++------- app/test/test_distributor_perf.c | 4 +- app/test/test_func_reentrancy.c | 28 ++-- app/test/test_hash_multiwriter.c | 16 +- app/test/test_hash_readwrite.c | 74 ++++----- app/test/test_hash_readwrite_lf_perf.c | 88 +++++----- app/test/test_lcores.c | 25 +-- app/test/test_lpm_perf.c | 14 +- app/test/test_mcslock.c | 12 +- app/test/test_mempool_perf.c | 9 +- app/test/test_pflock.c | 13 +- app/test/test_pmd_perf.c | 10 +- app/test/test_rcu_qsbr_perf.c | 114 ++++++------- app/test/test_ring_perf.c | 11 +- app/test/test_ring_stress_impl.h | 10 +- app/test/test_rwlock.c | 9 +- app/test/test_seqlock.c | 6 +- app/test/test_service_cores.c | 24 +-- app/test/test_spinlock.c | 9 +- app/test/test_stack_perf.c | 12 +- app/test/test_threads.c | 33 ++-- app/test/test_ticketlock.c | 9 +- app/test/test_timer.c | 31 ++-- drivers/baseband/acc/rte_acc100_pmd.c | 36 ++-- drivers/baseband/acc/rte_vrb_pmd.c | 46 ++++-- drivers/bus/vmbus/vmbus_channel.c | 9 +- drivers/common/cpt/cpt_common.h | 2 +- drivers/common/iavf/iavf_impl.c | 4 +- drivers/common/idpf/idpf_common_device.h | 6 +- drivers/common/idpf/idpf_common_rxtx.c | 14 +- drivers/common/idpf/idpf_common_rxtx.h | 2 +- drivers/common/idpf/idpf_common_rxtx_avx512.c | 16 +- drivers/common/mlx5/linux/mlx5_nl.c | 5 +- drivers/common/mlx5/mlx5_common.h | 2 +- drivers/common/mlx5/mlx5_common_mr.c | 16 +- drivers/common/mlx5/mlx5_common_mr.h | 2 +- drivers/common/mlx5/mlx5_common_utils.c | 32 ++-- drivers/common/mlx5/mlx5_common_utils.h | 6 +- drivers/common/mlx5/mlx5_malloc.c | 58 +++---- drivers/crypto/ccp/ccp_dev.c | 8 +- drivers/crypto/octeontx/otx_cryptodev_ops.c | 4 +- drivers/dma/idxd/idxd_internal.h | 2 +- drivers/dma/idxd/idxd_pci.c | 9 +- drivers/dma/skeleton/skeleton_dmadev.c | 5 +- drivers/dma/skeleton/skeleton_dmadev.h | 2 +- drivers/event/dlb2/dlb2.c | 34 ++-- drivers/event/dlb2/dlb2_priv.h | 10 +- drivers/event/dlb2/dlb2_xstats.c | 2 +- drivers/event/dsw/dsw_evdev.h | 6 +- drivers/event/dsw/dsw_event.c | 34 ++-- drivers/event/dsw/dsw_xstats.c | 4 +- drivers/event/octeontx/timvf_evdev.h | 8 +- drivers/event/octeontx/timvf_worker.h | 36 ++-- drivers/event/opdl/opdl_ring.c | 80 ++++----- drivers/net/af_xdp/rte_eth_af_xdp.c | 20 ++- drivers/net/bnxt/bnxt_cpr.h | 4 +- drivers/net/bnxt/bnxt_rxq.h | 2 +- drivers/net/bnxt/bnxt_rxr.c | 13 +- drivers/net/bnxt/bnxt_rxtx_vec_neon.c | 2 +- drivers/net/bnxt/bnxt_stats.c | 4 +- drivers/net/cpfl/cpfl_ethdev.c | 8 +- drivers/net/cxgbe/clip_tbl.c | 12 +- drivers/net/cxgbe/clip_tbl.h | 2 +- drivers/net/cxgbe/cxgbe_main.c | 20 +-- drivers/net/cxgbe/cxgbe_ofld.h | 6 +- drivers/net/cxgbe/l2t.c | 12 +- drivers/net/cxgbe/l2t.h | 2 +- drivers/net/cxgbe/mps_tcam.c | 21 +-- drivers/net/cxgbe/mps_tcam.h | 2 +- drivers/net/cxgbe/smt.c | 12 +- drivers/net/cxgbe/smt.h | 2 +- drivers/net/gve/base/gve_osdep.h | 4 +- drivers/net/hinic/hinic_pmd_rx.c | 2 +- drivers/net/hinic/hinic_pmd_rx.h | 2 +- drivers/net/hns3/hns3_cmd.c | 18 +- drivers/net/hns3/hns3_dcb.c | 2 +- drivers/net/hns3/hns3_ethdev.c | 36 ++-- drivers/net/hns3/hns3_ethdev.h | 32 ++-- drivers/net/hns3/hns3_ethdev_vf.c | 60 +++---- drivers/net/hns3/hns3_intr.c | 36 ++-- drivers/net/hns3/hns3_intr.h | 4 +- drivers/net/hns3/hns3_mbx.c | 6 +- drivers/net/hns3/hns3_mp.c | 6 +- drivers/net/hns3/hns3_rxtx.c | 10 +- drivers/net/hns3/hns3_tm.c | 4 +- drivers/net/i40e/i40e_ethdev.c | 4 +- drivers/net/i40e/i40e_rxtx.c | 6 +- drivers/net/i40e/i40e_rxtx_vec_neon.c | 2 +- drivers/net/iavf/iavf.h | 16 +- drivers/net/iavf/iavf_rxtx.c | 4 +- drivers/net/iavf/iavf_rxtx_vec_neon.c | 2 +- drivers/net/iavf/iavf_vchnl.c | 14 +- drivers/net/ice/base/ice_osdep.h | 4 +- drivers/net/ice/ice_dcf.c | 6 +- drivers/net/ice/ice_dcf.h | 2 +- drivers/net/ice/ice_dcf_ethdev.c | 8 +- drivers/net/ice/ice_dcf_parent.c | 16 +- drivers/net/ice/ice_ethdev.c | 12 +- drivers/net/ice/ice_ethdev.h | 2 +- drivers/net/idpf/idpf_ethdev.c | 7 +- drivers/net/ixgbe/ixgbe_ethdev.c | 14 +- drivers/net/ixgbe/ixgbe_ethdev.h | 2 +- drivers/net/ixgbe/ixgbe_rxtx.c | 4 +- drivers/net/memif/memif.h | 4 +- drivers/net/memif/rte_eth_memif.c | 50 +++--- drivers/net/mlx5/linux/mlx5_ethdev_os.c | 6 +- drivers/net/mlx5/linux/mlx5_verbs.c | 9 +- drivers/net/mlx5/mlx5.c | 9 +- drivers/net/mlx5/mlx5.h | 66 ++++---- drivers/net/mlx5/mlx5_flow.c | 37 +++-- drivers/net/mlx5/mlx5_flow.h | 8 +- drivers/net/mlx5/mlx5_flow_aso.c | 43 +++-- drivers/net/mlx5/mlx5_flow_dv.c | 126 +++++++------- drivers/net/mlx5/mlx5_flow_flex.c | 14 +- drivers/net/mlx5/mlx5_flow_hw.c | 61 +++---- drivers/net/mlx5/mlx5_flow_meter.c | 30 ++-- drivers/net/mlx5/mlx5_flow_quota.c | 32 ++-- drivers/net/mlx5/mlx5_hws_cnt.c | 71 ++++---- drivers/net/mlx5/mlx5_hws_cnt.h | 10 +- drivers/net/mlx5/mlx5_rx.h | 14 +- drivers/net/mlx5/mlx5_rxq.c | 30 ++-- drivers/net/mlx5/mlx5_trigger.c | 2 +- drivers/net/mlx5/mlx5_tx.h | 18 +- drivers/net/mlx5/mlx5_txpp.c | 84 +++++----- drivers/net/mlx5/mlx5_txq.c | 12 +- drivers/net/mlx5/mlx5_utils.c | 10 +- drivers/net/mlx5/mlx5_utils.h | 4 +- drivers/net/null/rte_eth_null.c | 12 +- drivers/net/octeon_ep/cnxk_ep_rx.h | 5 +- drivers/net/octeon_ep/cnxk_ep_tx.c | 5 +- drivers/net/octeon_ep/cnxk_ep_vf.c | 8 +- drivers/net/octeon_ep/otx2_ep_vf.c | 8 +- drivers/net/octeon_ep/otx_ep_common.h | 4 +- drivers/net/octeon_ep/otx_ep_rxtx.c | 6 +- drivers/net/octeontx/octeontx_ethdev.c | 8 +- drivers/net/qede/base/bcm_osal.c | 6 +- drivers/net/ring/rte_eth_ring.c | 8 +- drivers/net/sfc/meson.build | 5 +- drivers/net/sfc/sfc_mae_counter.c | 30 ++-- drivers/net/sfc/sfc_repr_proxy.c | 8 +- drivers/net/sfc/sfc_stats.h | 8 +- drivers/net/thunderx/nicvf_rxtx.c | 9 +- drivers/net/thunderx/nicvf_struct.h | 4 +- drivers/net/txgbe/txgbe_ethdev.c | 12 +- drivers/net/txgbe/txgbe_ethdev.h | 2 +- drivers/net/txgbe/txgbe_ethdev_vf.c | 2 +- drivers/net/virtio/virtio_ring.h | 4 +- drivers/net/virtio/virtio_user/virtio_user_dev.c | 12 +- drivers/net/virtio/virtqueue.h | 32 ++-- drivers/raw/ifpga/ifpga_rawdev.c | 9 +- drivers/vdpa/mlx5/mlx5_vdpa.c | 24 +-- drivers/vdpa/mlx5/mlx5_vdpa.h | 14 +- drivers/vdpa/mlx5/mlx5_vdpa_cthread.c | 46 +++--- drivers/vdpa/mlx5/mlx5_vdpa_lm.c | 4 +- drivers/vdpa/mlx5/mlx5_vdpa_mem.c | 4 +- drivers/vdpa/mlx5/mlx5_vdpa_virtq.c | 4 +- examples/bbdev_app/main.c | 13 +- examples/l2fwd-event/l2fwd_common.h | 4 +- examples/l2fwd-event/l2fwd_event.c | 24 +-- examples/l2fwd-jobstats/main.c | 11 +- .../client_server_mp/mp_server/main.c | 6 +- examples/server_node_efd/efd_server/main.c | 6 +- examples/vhost/main.c | 32 ++-- examples/vhost/main.h | 4 +- examples/vhost/virtio_net.c | 13 +- examples/vhost_blk/vhost_blk.c | 8 +- examples/vm_power_manager/channel_monitor.c | 9 +- 183 files changed, 1653 insertions(+), 1522 deletions(-)
Comments
On Wed, 20 Mar 2024 13:50:46 -0700 Tyler Retzlaff <roretzla@linux.microsoft.com> wrote: > This series converts all non-generic built atomics to use the rte_atomic > macros that allow optional enablement of standard C11 atomics. > > Use of generic atomics for non-scalar types are not converted in this > change and will be evaluated as a part of a separate series. > > Note if this series ends up requiring too much rebasing due to tree > churn before it is merged i will break it up into smaller series. Maybe a coccinelle script to automate this and check/fix future usages? Series-acked-by: Stephen Hemminger <stephen@networkplumber.org>
On Thu, Mar 21, 2024 at 08:33:23AM -0700, Stephen Hemminger wrote: > On Wed, 20 Mar 2024 13:50:46 -0700 > Tyler Retzlaff <roretzla@linux.microsoft.com> wrote: > > > This series converts all non-generic built atomics to use the rte_atomic > > macros that allow optional enablement of standard C11 atomics. > > > > Use of generic atomics for non-scalar types are not converted in this > > change and will be evaluated as a part of a separate series. > > > > Note if this series ends up requiring too much rebasing due to tree > > churn before it is merged i will break it up into smaller series. > > Maybe a coccinelle script to automate this and check/fix future usages? it also isn't strictly a 1:1 replacement so some __atomic_ could be text replaced sometimes you need to evaluate arguments on e.g. compare exchange to pick the right macro, sometimes there are generic vs scalar version to deal with. we already have a checkpatches check but right now it is (I think) being ignored when merging changes to drivers that have not been converted. so if we get things converted there shouldn't be any further reason to accept series that are being flagged by checkpatches. > > Series-acked-by: Stephen Hemminger <stephen@networkplumber.org>