[PATCH v4 26/29] event/opdl: replace SMP barriers with C11 atomics

Stephen Hemminger stephen at networkplumber.org
Wed Oct 14 00:22:39 CEST 2026


Publishing the port becomes a release store of the configured
flag. Control path.

Drop the barrier after clearing started in opdl_stop(): no store
follows it, and the datapath tests data->dev_started, not
device->started.

Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
 drivers/event/opdl/opdl_evdev.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/event/opdl/opdl_evdev.c b/drivers/event/opdl/opdl_evdev.c
index ffa65ef930..44a648a11a 100644
--- a/drivers/event/opdl/opdl_evdev.c
+++ b/drivers/event/opdl/opdl_evdev.c
@@ -200,8 +200,9 @@ opdl_port_setup(struct rte_eventdev *dev,
 	p->queue_id = OPDL_INVALID_QID;
 	p->external_qid = OPDL_INVALID_QID;
 	dev->data->ports[port_id] = p;
-	rte_smp_wmb();
-	p->configured = 1;
+	/* Release publishes port setup before the configured flag */
+	rte_atomic_store_explicit((uint8_t __rte_atomic *)&p->configured, 1,
+				  rte_memory_order_release);
 	device->nb_ports++;
 	return 0;
 }
@@ -474,10 +475,7 @@ opdl_stop(struct rte_eventdev *dev)
 
 	destroy_queues_and_rings(dev);
 
-
 	device->started = 0;
-
-	rte_smp_wmb();
 }
 
 static int
-- 
2.53.0



More information about the dev mailing list