From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
Wei Hu <weh@microsoft.com>
Subject: [PATCH v9 16/25] bus/vmbus: convert from rte_atomic to stdatomic
Date: Tue, 29 Sep 2026 07:02:02 -0700 [thread overview]
Message-ID: <20260929140409.234453-17-stephen@networkplumber.org> (raw)
In-Reply-To: <20260929140409.234453-1-stephen@networkplumber.org>
The tx ring producer uses two cursors:
- tbr->windex which is driver private. It lets producers reserve space
concurrently without a lock
- vbr->windex is the host visible commit cursor and has to advance in
reservation order so the host never sees it point past unwritten data.
Convert the reservation CAS on tbr->windex to a weak compare exchange,
and replace the smp_wmb plus CAS spin that published the commit with
rte_wait_until_equal_32 on the previous producer followed by a release
store. The release ordering on that store covers what the barrier did.
The wait on the previous producer uses acquire ordering, not relaxed.
A release store only carries the writes of the storing thread and
anything it has a happens-before edge to. Producers publish in
reservation order, so when this thread stores its own windex the host
may then consume the data of every earlier producer as well. The
acquire on the wait pairs with the earlier producer's release store,
putting that producer's data writes into this thread's happens-before
set so they are carried by this store too.
vbr->windex stays volatile uint32_t in the packed bufring struct.
The host is not a C11 thread.
The atomic qualifier is applied by cast at the single publishing store;
the (uintptr_t) launder there avoids a bogus misaligned atomic warning
from the packed attribute, since windex sits at offset 0 of a page
aligned struct.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/bus/vmbus/private.h | 2 +-
drivers/bus/vmbus/vmbus_bufring.c | 40 +++++++++++++++++--------------
2 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/drivers/bus/vmbus/private.h b/drivers/bus/vmbus/private.h
index 6efac86b77..6b7782724f 100644
--- a/drivers/bus/vmbus/private.h
+++ b/drivers/bus/vmbus/private.h
@@ -25,7 +25,7 @@ extern int vmbus_logtype_bus;
struct vmbus_br {
struct vmbus_bufring *vbr;
uint32_t dsize;
- uint32_t windex; /* next available location */
+ RTE_ATOMIC(uint32_t) windex; /* next available location */
};
#define UIO_NAME_MAX 64
diff --git a/drivers/bus/vmbus/vmbus_bufring.c b/drivers/bus/vmbus/vmbus_bufring.c
index fcb97287dc..dcd66390a3 100644
--- a/drivers/bus/vmbus/vmbus_bufring.c
+++ b/drivers/bus/vmbus/vmbus_bufring.c
@@ -15,7 +15,7 @@
#include <rte_tailq.h>
#include <rte_log.h>
#include <rte_malloc.h>
-#include <rte_atomic.h>
+#include <rte_stdatomic.h>
#include <rte_memory.h>
#include <rte_pause.h>
#include <rte_bus_vmbus.h>
@@ -121,17 +121,13 @@ vmbus_txbr_write(struct vmbus_br *tbr, const struct iovec iov[], int iovlen,
total += iov[i].iov_len;
total += sizeof(save_windex);
+ /* Get current free location */
+ old_windex = rte_atomic_load_explicit(&tbr->windex,
+ rte_memory_order_relaxed);
+
/* Reserve space in ring */
do {
- uint32_t avail;
-
- /* Get current free location */
- old_windex = tbr->windex;
-
- /* Prevent compiler reordering this with calculation */
- rte_compiler_barrier();
-
- avail = vmbus_br_availwrite(tbr, old_windex);
+ uint32_t avail = vmbus_br_availwrite(tbr, old_windex);
/* If not enough space in ring, then tell caller. */
if (avail <= total)
@@ -139,8 +135,12 @@ vmbus_txbr_write(struct vmbus_br *tbr, const struct iovec iov[], int iovlen,
next_windex = vmbus_br_idxinc(old_windex, total, ring_size);
- /* Atomic update of next write_index for other threads */
- } while (!rte_atomic32_cmpset(&tbr->windex, old_windex, next_windex));
+ /* Atomic update of next write_index for other threads
+ * Can use weak since easy to recompute and retry.
+ */
+ } while (!rte_atomic_compare_exchange_weak_explicit(
+ &tbr->windex, &old_windex, next_windex,
+ rte_memory_order_acquire, rte_memory_order_relaxed));
/* Space from old..new is now reserved */
windex = old_windex;
@@ -157,12 +157,15 @@ vmbus_txbr_write(struct vmbus_br *tbr, const struct iovec iov[], int iovlen,
/* The region reserved should match region used */
RTE_ASSERT(windex == next_windex);
- /* Ensure that data is available before updating host index */
- rte_smp_wmb();
+ /* Wait for previous producer to publish their windex update */
+ rte_wait_until_equal_32(&vbr->windex, old_windex, rte_memory_order_acquire);
- /* Checkin for our reservation. wait for our turn to update host */
- while (!rte_atomic32_cmpset(&vbr->windex, old_windex, next_windex))
- rte_pause();
+ /* Publish our windex update; prior data writes ordered via release.
+ * windex is 4-byte aligned in practice (struct is page-aligned, windex
+ * at offset 0); cast launders the packed-struct alignment-1 attribute.
+ */
+ rte_atomic_store_explicit((volatile __rte_atomic uint32_t *)(uintptr_t)&vbr->windex,
+ next_windex, rte_memory_order_release);
/* If host had read all data before this, then need to signal */
*need_sig |= vmbus_txbr_need_signal(vbr, old_windex);
@@ -224,7 +227,8 @@ vmbus_rxbr_read(struct vmbus_br *rbr, void *data, size_t dlen, size_t skip)
return -EAGAIN;
/* Record where host was when we started read (for debug) */
- rbr->windex = rbr->vbr->windex;
+ rte_atomic_store_explicit(&rbr->windex, rbr->vbr->windex,
+ rte_memory_order_relaxed);
/*
* Copy channel packet from RX bufring.
--
2.53.0
next prev parent reply other threads:[~2026-09-29 14:06 UTC|newest]
Thread overview: 221+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-21 4:17 [RFC 0/7] prepare deprecation of rte_atomicNN_*() family Stephen Hemminger
2026-05-21 4:17 ` [RFC 1/7] doc: update versions in deprecation file Stephen Hemminger
2026-05-21 4:17 ` [RFC 2/7] eal: reimplement rte_smp_*mb with rte_atomic_thread_fence Stephen Hemminger
2026-05-21 15:43 ` Wathsala Vithanage
2026-05-21 4:17 ` [RFC 3/7] ring: use C11 atomic operations for MP/SP head/tail Stephen Hemminger
2026-05-21 15:57 ` Wathsala Vithanage
2026-05-21 4:17 ` [RFC 4/7] net/zxdh: work around GCC bitfield uninit false positive Stephen Hemminger
2026-05-21 4:17 ` [RFC 5/7] net/bonding: use stdatomic Stephen Hemminger
2026-05-21 4:17 ` [RFC 6/7] net/nbl: remove unused rte_atomic16 field Stephen Hemminger
2026-05-21 4:17 ` [RFC 7/7] config: use RTE_FORCE_INTRINSICS on all platforms Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 00/11] prepare deprecation of rte_atomicNN_*() family Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 01/11] eal: use intrinsics for rte_atomic on all platforms Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 02/11] eal: reimplement rte_smp_*mb with rte_atomic_thread_fence Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 03/11] ring: use C11 atomic operations for MP/SP head/tail Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 04/11] net/bonding: use stdatomic Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 05/11] net/nbl: remove unused rte_atomic16 field Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 06/11] net/ena: replace use of rte_atomicNN Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 07/11] net/failsafe: convert to stdatomic Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 08/11] net/enic: do not use deprecated rte_atomic64 Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 09/11] net/pfe: use ethdev linkstatus helpers Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 10/11] net/sfc: replace rte_atomic with stdatomic Stephen Hemminger
2026-05-21 18:04 ` [RFC v2 11/11] crypto/ccp: replace use of rte_atomic64 " Stephen Hemminger
2026-05-22 14:19 ` [RFC v2 00/11] prepare deprecation of rte_atomicNN_*() family Bruce Richardson
2026-05-22 14:45 ` Stephen Hemminger
2026-05-23 19:16 ` [PATCH v3 00/27] deprecate rte_atomicNN family Stephen Hemminger
2026-05-23 19:16 ` [PATCH v3 01/27] eal: use intrinsics for rte_atomic on all platforms Stephen Hemminger
2026-05-23 19:16 ` [PATCH v3 02/27] eal: reimplement rte_smp_*mb with rte_atomic_thread_fence Stephen Hemminger
2026-05-23 19:16 ` [PATCH v3 03/27] ring: use compare-and-swap wrapper Stephen Hemminger
2026-05-25 7:41 ` Konstantin Ananyev
2026-05-25 14:31 ` Stephen Hemminger
2026-05-25 15:35 ` Stephen Hemminger
2026-05-25 15:47 ` Morten Brørup
2026-05-23 19:16 ` [PATCH v3 04/27] bpf: replace atomic op macro with typed helpers Stephen Hemminger
2026-05-23 19:16 ` [PATCH v3 05/27] net/bonding: use stdatomic Stephen Hemminger
2026-05-23 19:16 ` [PATCH v3 06/27] net/nbl: remove unused rte_atomic16 field Stephen Hemminger
2026-05-23 19:16 ` [PATCH v3 07/27] net/ena: replace use of rte_atomicNN Stephen Hemminger
2026-05-23 19:16 ` [PATCH v3 08/27] net/failsafe: convert to stdatomic Stephen Hemminger
2026-05-23 19:16 ` [PATCH v3 09/27] net/enic: do not use deprecated rte_atomic64 Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 00/27] deprecate rte_atomicNN family Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 01/27] eal: use intrinsics for rte_atomic on all platforms Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 02/27] eal: reimplement rte_smp_*mb with rte_atomic_thread_fence Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 03/27] ring: use compare-and-swap wrapper Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 04/27] bpf: replace atomic op macro with typed helpers Stephen Hemminger
2026-05-25 10:49 ` Marat Khalili
2026-05-23 19:56 ` [PATCH v3 05/27] net/bonding: use stdatomic Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 06/27] net/nbl: remove unused rte_atomic16 field Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 07/27] net/ena: replace use of rte_atomicNN Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 08/27] net/failsafe: convert to stdatomic Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 09/27] net/enic: do not use deprecated rte_atomic64 Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 10/27] net/pfe: use ethdev linkstatus helpers Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 11/27] net/sfc: replace rte_atomic with stdatomic Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 12/27] crypto/ccp: replace use of rte_atomic64 " Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 13/27] bus/dpaa: replace rte_atomic16 " Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 14/27] drivers: " Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 15/27] net/netvsc: replace rte_atomic32 " Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 16/27] event/sw: convert from rte_atomic32 to stdatomic Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 17/27] bus/vmbus: convert from rte_atomic " Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 18/27] common/dpaax: remove unused atomic macros Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 19/27] net/bnx2x: convert from rte_atomic32 to stdatomic Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 20/27] bus/fslmc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 21/27] drivers/event: replace rte_atomic32 in selftests Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 22/27] net/hinic: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 23/27] net/txgbe: " Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 24/27] net/vhost: use stdatomic instead of rte_atomic32 Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 25/27] vdpa/ifc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 26/27] test/atomic: suppress deprecation warnings for legacy APIs Stephen Hemminger
2026-05-23 19:56 ` [PATCH v3 27/27] eal: mark rte_atomicNN as deprecated Stephen Hemminger
2026-05-26 23:23 ` [PATCH v4 00/27] deprecate rte_atomicNN family Stephen Hemminger
2026-05-26 23:23 ` [PATCH v4 01/27] eal: use intrinsics for rte_atomic on all platforms Stephen Hemminger
2026-06-01 18:23 ` Konstantin Ananyev
2026-05-26 23:23 ` [PATCH v4 02/27] eal: reimplement rte_smp_*mb with rte_atomic_thread_fence Stephen Hemminger
2026-06-01 18:24 ` Konstantin Ananyev
2026-05-26 23:23 ` [PATCH v4 03/27] ring: unify memory model on C11, remove atomic32 Stephen Hemminger
2026-06-01 18:18 ` Konstantin Ananyev
2026-06-01 21:05 ` Stephen Hemminger
2026-06-01 21:18 ` Stephen Hemminger
2026-06-01 22:07 ` Stephen Hemminger
2026-05-26 23:23 ` [PATCH v4 04/27] bpf: use C11 atomics in BPF_ST_ATOMIC_REG Stephen Hemminger
2026-05-27 16:52 ` Marat Khalili
2026-05-26 23:23 ` [PATCH v4 05/27] net/bonding: use stdatomic Stephen Hemminger
2026-05-26 23:23 ` [PATCH v4 06/27] net/nbl: remove unused rte_atomic16 field Stephen Hemminger
2026-05-26 23:23 ` [PATCH v4 07/27] net/ena: replace use of rte_atomicNN Stephen Hemminger
2026-05-26 23:23 ` [PATCH v4 08/27] net/failsafe: convert to stdatomic Stephen Hemminger
2026-05-26 23:23 ` [PATCH v4 09/27] net/enic: do not use deprecated rte_atomic64 Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 10/27] net/pfe: use ethdev linkstatus helpers Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 11/27] net/sfc: replace rte_atomic with stdatomic Stephen Hemminger
2026-06-01 9:22 ` Andrew Rybchenko
2026-05-26 23:24 ` [PATCH v4 12/27] crypto/ccp: replace use of rte_atomic64 " Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 13/27] bus/dpaa: replace rte_atomic16 " Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 14/27] drivers: " Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 15/27] net/netvsc: replace rte_atomic32 " Stephen Hemminger
2026-05-27 0:29 ` [EXTERNAL] " Long Li
2026-05-31 16:35 ` Stephen Hemminger
2026-06-25 2:32 ` Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 16/27] event/sw: convert from rte_atomic32 to stdatomic Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 17/27] bus/vmbus: convert from rte_atomic " Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 18/27] common/dpaax: use stdatomic instead of rte_atomic Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 19/27] net/bnx2x: convert from rte_atomic32 to stdatomic Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 20/27] bus/fslmc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 21/27] drivers/event: replace rte_atomic32 in selftests Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 22/27] net/hinic: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 23/27] net/txgbe: " Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 24/27] net/vhost: use stdatomic instead of rte_atomic32 Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 25/27] vdpa/ifc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 26/27] test/atomic: suppress deprecation warnings for legacy APIs Stephen Hemminger
2026-05-26 23:24 ` [PATCH v4 27/27] eal: mark rte_atomicNN as deprecated Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 00/24] replace use of rte_atomicNN Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 01/24] bpf: use C11 atomics in BPF_ST_ATOMIC_REG Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 02/24] net/bonding: use stdatomic Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 03/24] net/nbl: remove unused rte_atomic16 field Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 04/24] net/ena: replace use of rte_atomicNN Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 05/24] net/failsafe: convert to stdatomic Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 06/24] net/enic: do not use deprecated rte_atomic64 Stephen Hemminger
2026-07-31 6:09 ` Hyong Youb Kim (hyonkim)
2026-07-31 4:57 ` [PATCH v6 07/24] net/pfe: use ethdev linkstatus helpers Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 08/24] net/sfc: replace rte_atomic with stdatomic Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 09/24] crypto/ccp: replace use of rte_atomic64 " Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 10/24] bus/dpaa: replace rte_atomic16 " Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 11/24] bus/fslmc: " Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 12/24] net/netvsc: replace rte_atomic32 " Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 13/24] event/sw: convert from rte_atomic32 to stdatomic Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 14/24] bus/vmbus: convert from rte_atomic " Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 15/24] common/dpaax: use stdatomic instead of rte_atomic Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 16/24] net/bnx2x: convert from rte_atomic32 to stdatomic Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 17/24] bus/fslmc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 18/24] drivers/event: replace rte_atomic32 in selftests Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 19/24] net/hinic: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 20/24] net/txgbe: " Stephen Hemminger
2026-07-31 4:57 ` [PATCH v6 21/24] net/vhost: use stdatomic instead of rte_atomic32 Stephen Hemminger
2026-07-31 4:58 ` [PATCH v6 22/24] vdpa/ifc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-07-31 4:58 ` [PATCH v6 23/24] test/atomic: suppress deprecation warnings for legacy APIs Stephen Hemminger
2026-07-31 4:58 ` [PATCH v6 24/24] eal: deprecate rte_atomicNN functions Stephen Hemminger
2026-08-06 3:22 ` [PATCH v7 00/24] remove legacy atomic functions Stephen Hemminger
2026-08-06 3:22 ` [PATCH v7 01/24] bpf: use C11 atomics in BPF_ST_ATOMIC_REG Stephen Hemminger
2026-08-06 3:22 ` [PATCH v7 02/24] net/bonding: use stdatomic Stephen Hemminger
2026-08-06 3:22 ` [PATCH v7 03/24] net/nbl: remove unused rte_atomic16 field Stephen Hemminger
2026-08-06 3:22 ` [PATCH v7 04/24] net/ena: replace use of rte_atomicNN Stephen Hemminger
2026-08-06 3:22 ` [PATCH v7 05/24] net/failsafe: convert to stdatomic Stephen Hemminger
2026-08-06 3:22 ` [PATCH v7 06/24] net/enic: do not use deprecated rte_atomic64 Stephen Hemminger
2026-08-06 3:22 ` [PATCH v7 07/24] net/pfe: use ethdev linkstatus helpers Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 08/24] net/sfc: replace rte_atomic with stdatomic Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 09/24] crypto/ccp: replace use of rte_atomic64 " Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 10/24] bus/dpaa: replace rte_atomic16 " Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 11/24] bus/fslmc: " Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 12/24] net/netvsc: replace rte_atomic32 " Stephen Hemminger
2026-08-13 22:45 ` [EXTERNAL] " Long Li
2026-08-06 3:23 ` [PATCH v7 13/24] event/sw: convert from rte_atomic32 to stdatomic Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 14/24] bus/vmbus: convert from rte_atomic " Stephen Hemminger
2026-08-13 23:02 ` [EXTERNAL] " Long Li
2026-08-06 3:23 ` [PATCH v7 15/24] common/dpaax: remove unused atomic wrappers Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 16/24] net/bnx2x: convert from rte_atomic32 to stdatomic Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 17/24] bus/fslmc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-08-06 6:15 ` Hemant Agrawal
2026-08-06 3:23 ` [PATCH v7 18/24] drivers/event: replace rte_atomic32 in selftests Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 19/24] net/hinic: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 20/24] net/txgbe: " Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 21/24] net/vhost: use stdatomic instead of rte_atomic32 Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 22/24] vdpa/ifc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 23/24] test/atomic: drop old rte_atomicNN tests Stephen Hemminger
2026-08-06 3:23 ` [PATCH v7 24/24] eal: remove rte_atomicNN functions Stephen Hemminger
2026-09-04 12:12 ` [PATCH v7 00/24] remove legacy atomic functions Morten Brørup
2026-09-17 20:10 ` [PATCH v8 00/25] " Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 01/25] bpf: use C11 atomics in BPF_ST_ATOMIC_REG Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 02/25] net/bonding: use stdatomic Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 03/25] net/nbl: remove unused rte_atomic16 field Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 04/25] net/ena: replace use of rte_atomicNN Stephen Hemminger
2026-09-29 8:07 ` David Marchand
2026-09-29 13:54 ` Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 05/25] net/failsafe: convert to stdatomic Stephen Hemminger
2026-09-29 8:06 ` David Marchand
2026-09-17 20:10 ` [PATCH v8 06/25] net/enic: do not use deprecated rte_atomic64 Stephen Hemminger
2026-09-29 8:12 ` David Marchand
2026-09-17 20:10 ` [PATCH v8 07/25] net/pfe: use ethdev linkstatus helpers Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 08/25] net/sfc: replace rte_atomic with stdatomic Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 09/25] crypto/ccp: replace use of rte_atomic64 " Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 10/25] bus/dpaa: remove unused in_use field Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 11/25] bus/dpaa: replace rte_atomic16 with stdatomic Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 12/25] bus/fslmc: replace rte_atomic " Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 13/25] common/dpaax: remove unused atomic wrappers Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 14/25] net/netvsc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-09-21 9:46 ` [EXTERNAL] " Wei Hu
2026-09-17 20:10 ` [PATCH v8 15/25] event/sw: convert from rte_atomic32 to stdatomic Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 16/25] bus/vmbus: convert from rte_atomic " Stephen Hemminger
2026-09-21 9:37 ` [EXTERNAL] " Wei Hu
2026-09-17 20:10 ` [PATCH v8 17/25] net/bnx2x: convert from rte_atomic32 " Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 18/25] drivers/event: replace rte_atomic32 in selftests Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 19/25] net/hinic: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 20/25] net/txgbe: " Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 21/25] net/vhost: use stdatomic for state flags Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 22/25] net/vhost: use stdatomic instead of rte_atomic32 Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 23/25] vdpa/ifc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 24/25] test/atomic: drop old rte_atomicNN tests Stephen Hemminger
2026-09-17 20:10 ` [PATCH v8 25/25] eal: remove rte_atomicNN functions Stephen Hemminger
2026-09-29 9:17 ` [PATCH v8 00/25] remove legacy atomic functions David Marchand
2026-09-29 14:01 ` [PATCH v9 " Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 01/25] bpf: use C11 atomics in BPF_ST_ATOMIC_REG Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 02/25] net/bonding: use stdatomic Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 03/25] net/nbl: remove unused rte_atomic16 field Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 04/25] net/ena: replace use of rte_atomicNN Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 05/25] net/failsafe: convert to stdatomic Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 06/25] net/enic: do not use deprecated rte_atomic64 Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 07/25] net/pfe: use ethdev linkstatus helpers Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 08/25] net/sfc: replace rte_atomic with stdatomic Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 09/25] crypto/ccp: replace use of rte_atomic64 " Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 10/25] bus/dpaa: remove unused in_use field Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 11/25] bus/dpaa: replace rte_atomic16 with stdatomic Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 12/25] bus/fslmc: replace rte_atomic " Stephen Hemminger
2026-09-29 14:01 ` [PATCH v9 13/25] common/dpaax: remove unused atomic wrappers Stephen Hemminger
2026-09-29 14:02 ` [PATCH v9 14/25] net/netvsc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-09-29 14:02 ` [PATCH v9 15/25] event/sw: convert from rte_atomic32 to stdatomic Stephen Hemminger
2026-09-29 14:02 ` Stephen Hemminger [this message]
2026-09-29 14:02 ` [PATCH v9 17/25] net/bnx2x: " Stephen Hemminger
2026-09-29 14:02 ` [PATCH v9 18/25] drivers/event: replace rte_atomic32 in selftests Stephen Hemminger
2026-09-29 14:02 ` [PATCH v9 19/25] net/hinic: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-09-29 14:02 ` [PATCH v9 20/25] net/txgbe: " Stephen Hemminger
2026-09-29 14:02 ` [PATCH v9 21/25] net/vhost: use stdatomic for state flags Stephen Hemminger
2026-09-29 14:02 ` [PATCH v9 22/25] net/vhost: use stdatomic instead of rte_atomic32 Stephen Hemminger
2026-09-29 14:02 ` [PATCH v9 23/25] vdpa/ifc: replace rte_atomic32 with stdatomic Stephen Hemminger
2026-09-29 14:02 ` [PATCH v9 24/25] test/atomic: drop old rte_atomicNN tests Stephen Hemminger
2026-09-29 14:02 ` [PATCH v9 25/25] eal: remove rte_atomicNN functions Stephen Hemminger
2026-10-01 13:29 ` [PATCH v9 00/25] remove legacy atomic functions David Marchand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260929140409.234453-17-stephen@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=weh@microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox