From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 04F5CC54F54 for ; Fri, 31 Jul 2026 05:02:07 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 903E240E21; Fri, 31 Jul 2026 07:00:26 +0200 (CEST) Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by mails.dpdk.org (Postfix) with ESMTP id A529C40A82 for ; Fri, 31 Jul 2026 07:00:15 +0200 (CEST) Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2cca0c5799eso4511675ad.0 for ; Thu, 30 Jul 2026 22:00:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=networkplumber-org.20251104.gappssmtp.com; s=20251104; t=1785474015; x=1786078815; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=+0lNVThOYvKlOHLKbzaPubzFPKBCgRP7BQ7sQsrvDw4=; b=xVVlehkw8iAVpNUdsJXBpxUyzSEl8YvvYSDmPAxXLx4PIwShgdNY0pf0NpWHQl7T3w f5kY+m5iJUpqdeWj34kWXO8+2xozNsvoDeuu7KhTID2J6sz+JKFW1FLe58177hqRLd4s ZMk6GNV42KeBzMDupOzCS4bMsvDMWd07+YGPvYjIfEJElmN0fZNzVxk9J3O7JXlE30RI GDrKChjN8AN/5x7KLoGRjDrr5JqYR1RBz3kkkqNVv2GHYQz/Y/m/QGtTZbD5YApR7Y26 fis3292DfJU3m4NdbEPuNK7Q4ute+iJ8NwdBIvLyL8PXTPQJf/QXhLPU24Gwuyy0MJ85 8BHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785474015; x=1786078815; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=+0lNVThOYvKlOHLKbzaPubzFPKBCgRP7BQ7sQsrvDw4=; b=JjwcA4LQcmECcscqWEGNGqpGq4oI6yIwxMFl/kZNpuong5hFyCsTAgnZK/bu1RRWTl t97tLjczFBvOS1BjOt2PklsoggD1JIT7GWZN3Vvrcf8/klaITzSgS9mIpR+oLsIGV4y2 uinGz/vV/TnyHHvnlff8YPcLZg7utyoey63oMWXROMh2caHxypujPbuNvcGJNN29eDTN fTeigEYEemN+0f1M71gMUgeCQb1Ux5oZG/Y+gLZO6irqh2HPRpVybY5cH419foxqxHv0 K3muXSqreGqnOxN+p2T6loOiG3FNVlSj5noSmRsolQYHz6eepRgivKc7Aylw4NKtbPK/ atMA== X-Gm-Message-State: AOJu0YyqLS8AyhOPYGk28fOh4f1SehLrNMDs0Rh4us9rfhV4Mn4DuJjj CAHbHHlRewm5dPLTOhocLOaviVAiWLlDnKYoHIBI2PMKabfN0huue/JSA5GH5sgr5r0bLJzfYDv EFH0U X-Gm-Gg: AR+sD12YJ41R0G3dBY3NgcjSHr3EUxREJ3pZ+6PPP2MEpDE3rbI2E774jLs6HXRD3Q7 aRGz0IhyTsvC0d51wy3ZrnnsxnN/dJQTUSDXkWCuDHL8+xmZ5GvFMn4jvBd52vWuIrr30fP2BYW izuLsL/RqKk2pzi3hoW9j2qpQK4YgHPbE8LJbTbQonEGN6SbuwS+R/eQf4I5g7hav15S3ysvA4t YpMvBsYyCzlgrH6FeNosQqTGlMhooCwPjVPdaje3lhN1H/wb6CXuNc132oVnaBpgi8nGmZlG40u aOQlsBG5YDsRQ8SxaPaWoNr2k3p27uwctwq0ZnHIm7AbHOBHmKIwpwGsgiCvREGyZA/UE2rqWpK rqBeuhR/unB6cBsUzpOigBD6aCy2kvaAysIVrW5JiXc0TwTOWJltnSgPLzl8QBwxEQ1OsO1qQQr jUFCrL60HdMG9lsqPXRnsF9Qqoehl7S2m0+N+fk7i/K+HzLR9sQsB3ygUWEEfd81NdIYNpt22kG mSh4nmg1Pema03hSWF3lz5J84I= X-Received: by 2002:a17:902:c948:b0:2cf:b23a:3e39 with SMTP id d9443c01a7336-2d046ebfa6bmr7060215ad.43.1785474014843; Thu, 30 Jul 2026 22:00:14 -0700 (PDT) Received: from phoenix.lan (204-195-96-226.wavecable.com. [204.195.96.226]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3153e06f0f9sm823245eec.23.2026.07.30.22.00.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Jul 2026 22:00:14 -0700 (PDT) From: Stephen Hemminger To: dev@dpdk.org Cc: Stephen Hemminger Subject: [PATCH v6 22/24] vdpa/ifc: replace rte_atomic32 with stdatomic Date: Thu, 30 Jul 2026 21:58:00 -0700 Message-ID: <20260731045948.769926-23-stephen@networkplumber.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260731045948.769926-1-stephen@networkplumber.org> References: <20260521042043.1590536-1-stephen@networkplumber.org> <20260731045948.769926-1-stephen@networkplumber.org> MIME-Version: 1.0 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 Last in-tree caller of rte_atomic32_*(), blocking deprecation of the rte_atomicNN_*() family. Replace rte_atomic32_read/set() with rte_atomic_load_explicit() and rte_atomic_store_explicit() on the started, dev_attached, and running flags. Narrow them to bool (only ever hold 0/1) and group with the existing bools to reduce padding in struct ifcvf_internal. Signed-off-by: Stephen Hemminger --- drivers/vdpa/ifc/ifcvf_vdpa.c | 37 ++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/drivers/vdpa/ifc/ifcvf_vdpa.c b/drivers/vdpa/ifc/ifcvf_vdpa.c index f319d455ba..e5da11a2ba 100644 --- a/drivers/vdpa/ifc/ifcvf_vdpa.c +++ b/drivers/vdpa/ifc/ifcvf_vdpa.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "base/ifcvf.h" @@ -68,10 +69,10 @@ struct ifcvf_internal { struct rte_vdpa_device *vdev; uint16_t max_queues; uint64_t features; - rte_atomic32_t started; - rte_atomic32_t dev_attached; - rte_atomic32_t running; rte_spinlock_t lock; + RTE_ATOMIC(bool) started; + RTE_ATOMIC(bool) dev_attached; + RTE_ATOMIC(bool) running; bool sw_lm; bool sw_fallback_running; /* mediated vring for sw fallback */ @@ -712,9 +713,9 @@ update_datapath(struct ifcvf_internal *internal) rte_spinlock_lock(&internal->lock); - if (!rte_atomic32_read(&internal->running) && - (rte_atomic32_read(&internal->started) && - rte_atomic32_read(&internal->dev_attached))) { + if (!rte_atomic_load_explicit(&internal->running, rte_memory_order_seq_cst) && + (rte_atomic_load_explicit(&internal->started, rte_memory_order_seq_cst) && + rte_atomic_load_explicit(&internal->dev_attached, rte_memory_order_seq_cst))) { ret = ifcvf_dma_map(internal, true); if (ret) goto err; @@ -735,10 +736,10 @@ update_datapath(struct ifcvf_internal *internal) if (ret) goto err; - rte_atomic32_set(&internal->running, 1); - } else if (rte_atomic32_read(&internal->running) && - (!rte_atomic32_read(&internal->started) || - !rte_atomic32_read(&internal->dev_attached))) { + rte_atomic_store_explicit(&internal->running, true, rte_memory_order_seq_cst); + } else if (rte_atomic_load_explicit(&internal->running, rte_memory_order_seq_cst) && + (!rte_atomic_load_explicit(&internal->started, rte_memory_order_seq_cst) || + !rte_atomic_load_explicit(&internal->dev_attached, rte_memory_order_seq_cst))) { unset_intr_relay(internal); ret = unset_notify_relay(internal); @@ -755,7 +756,7 @@ update_datapath(struct ifcvf_internal *internal) if (ret) goto err; - rte_atomic32_set(&internal->running, 0); + rte_atomic_store_explicit(&internal->running, false, rte_memory_order_seq_cst); } rte_spinlock_unlock(&internal->lock); @@ -1058,7 +1059,7 @@ ifcvf_sw_fallback_switchover(struct ifcvf_internal *internal) vdpa_disable_vfio_intr(internal); - rte_atomic32_set(&internal->running, 0); + rte_atomic_store_explicit(&internal->running, false, rte_memory_order_seq_cst); ret = rte_vhost_host_notifier_ctrl(vid, RTE_VHOST_QUEUE_ALL, false); if (ret && ret != -ENOTSUP) @@ -1113,11 +1114,11 @@ ifcvf_dev_config(int vid) internal = list->internal; internal->vid = vid; - rte_atomic32_set(&internal->dev_attached, 1); + rte_atomic_store_explicit(&internal->dev_attached, true, rte_memory_order_seq_cst); if (update_datapath(internal) < 0) { DRV_LOG(ERR, "failed to update datapath for vDPA device %s", vdev->device->name); - rte_atomic32_set(&internal->dev_attached, 0); + rte_atomic_store_explicit(&internal->dev_attached, false, rte_memory_order_seq_cst); return -1; } @@ -1166,7 +1167,7 @@ ifcvf_dev_close(int vid) internal->sw_fallback_running = false; } else { - rte_atomic32_set(&internal->dev_attached, 0); + rte_atomic_store_explicit(&internal->dev_attached, false, rte_memory_order_seq_cst); if (update_datapath(internal) < 0) { DRV_LOG(ERR, "failed to update datapath for vDPA device %s", vdev->device->name); @@ -1782,10 +1783,10 @@ ifcvf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, goto error; } - rte_atomic32_set(&internal->started, 1); + rte_atomic_store_explicit(&internal->started, true, rte_memory_order_seq_cst); if (update_datapath(internal) < 0) { DRV_LOG(ERR, "failed to update datapath %s", pci_dev->name); - rte_atomic32_set(&internal->started, 0); + rte_atomic_store_explicit(&internal->started, false, rte_memory_order_seq_cst); rte_vdpa_unregister_device(internal->vdev); pthread_mutex_lock(&internal_list_lock); TAILQ_REMOVE(&internal_list, list, next); @@ -1819,7 +1820,7 @@ ifcvf_pci_remove(struct rte_pci_device *pci_dev) } internal = list->internal; - rte_atomic32_set(&internal->started, 0); + rte_atomic_store_explicit(&internal->started, false, rte_memory_order_seq_cst); if (update_datapath(internal) < 0) DRV_LOG(ERR, "failed to update datapath %s", pci_dev->name); -- 2.53.0