[PATCH v2 2/9] bpf: document ethdev callback threading limitations
Marat Khalili
qm2k21 at gmail.com
Mon Oct 12 23:09:09 CEST 2026
Document the data plane limitation in the file docstring of
rte_bpf_ethdev.h: packet callback execution expects only one
thread per port/queue pair at a time, making concurrent bursts
(such as with RTE_ETH_TX_OFFLOAD_MT_LOCKFREE, shared RX queues,
or multi-threaded software PMDs) unsupported.
Rephrase the existing control plane multi-threading limitation
to explicitly distinguish it from the data plane requirement.
Signed-off-by: Marat Khalili <qm2k21 at gmail.com>
---
lib/bpf/rte_bpf_ethdev.h | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/lib/bpf/rte_bpf_ethdev.h b/lib/bpf/rte_bpf_ethdev.h
index 686fda8d94..cf3b4048f0 100644
--- a/lib/bpf/rte_bpf_ethdev.h
+++ b/lib/bpf/rte_bpf_ethdev.h
@@ -10,8 +10,12 @@
*
* API to install BPF filter as RX/TX callbacks for eth devices.
* Note that right now:
- * - it is not MT safe, i.e. it is not allowed to do load/unload for the
- * same port/queue from different threads in parallel.
+ * - in the data plane, it expects only one thread per port/queue pair at a time.
+ * Calling RX/TX burst functions concurrently on the same queue (e.g. when using
+ * RTE_ETH_TX_OFFLOAD_MT_LOCKFREE, shared RX queues, or multi-threaded
+ * software PMDs) is not supported.
+ * - in the control plane, it is not MT safe, i.e. it is not allowed to do
+ * load/unload for the same port/queue from different threads in parallel.
* - though it allows load/unload at runtime
* (while RX/TX is ongoing on given port/queue).
* - allows only one BPF program per port/queue,
--
2.43.0
More information about the dev
mailing list