[PATCH v3 0/6] mlx5: external RxQ support
Michael Baum
michaelba at nvidia.com
Fri Feb 25 00:25:05 CET 2022
These patches add support to external Rx queues.
External queue is a queue that is managed by a process external to PMD,
but uses PMD process to generate its flow rules.
For the hardware to allow the DPDK process to set rules for it, the
process needs to use the same PD of the external process. In addition,
the indexes of the queues in hardware are represented by 32-bit compared
to the rte_flow indexes represented by 16-bit, so the processes need to
share some mapping between the indexes.
These patches allow the external process to provide devargs which enable
importing its context and PD, instead of prepare new ones. In addition,
an API is provided for mapping for the indexes of the queues.
v1:
- initial commits.
v2:
- Rebase.
- Add ABI exception for common/mlx5 library.
- Correct DevX flag updating.
- Improve explanations in doc and comments.
- Remove teatpmd part.
v3:
- Rebase.
- Fix compilation error.
- Avoide TOCTOU issue in external RxQ map/unmap functions.
- Add check it the queue still referenced in unmapping function.
- Improve guide explanations for the new devargs.
Michael Baum (6):
common/mlx5: consider local functions as internal
common/mlx5: glue device and PD importation
common/mlx5: add remote PD and CTX support
net/mlx5: optimize RxQ/TxQ control structure
net/mlx5: add external RxQ mapping API
net/mlx5: support queue/RSS action for external RxQ
devtools/libabigail.abignore | 4 +
doc/guides/nics/mlx5.rst | 1 +
doc/guides/platform/mlx5.rst | 37 ++-
doc/guides/rel_notes/release_22_03.rst | 1 +
drivers/common/mlx5/linux/meson.build | 2 +
drivers/common/mlx5/linux/mlx5_common_os.c | 196 ++++++++++++--
drivers/common/mlx5/linux/mlx5_common_os.h | 7 +-
drivers/common/mlx5/linux/mlx5_glue.c | 41 +++
drivers/common/mlx5/linux/mlx5_glue.h | 4 +
drivers/common/mlx5/mlx5_common.c | 84 ++++--
drivers/common/mlx5/mlx5_common.h | 23 +-
drivers/common/mlx5/version.map | 3 +
drivers/common/mlx5/windows/mlx5_common_os.c | 37 ++-
drivers/common/mlx5/windows/mlx5_common_os.h | 1 -
drivers/net/mlx5/linux/mlx5_os.c | 17 ++
drivers/net/mlx5/mlx5.c | 5 +
drivers/net/mlx5/mlx5.h | 1 +
drivers/net/mlx5/mlx5_defs.h | 3 +
drivers/net/mlx5/mlx5_devx.c | 52 ++--
drivers/net/mlx5/mlx5_ethdev.c | 18 +-
drivers/net/mlx5/mlx5_flow.c | 43 +--
drivers/net/mlx5/mlx5_flow_dv.c | 14 +-
drivers/net/mlx5/mlx5_rx.h | 49 +++-
drivers/net/mlx5/mlx5_rxq.c | 266 +++++++++++++++++--
drivers/net/mlx5/mlx5_trigger.c | 36 +--
drivers/net/mlx5/mlx5_tx.h | 7 +-
drivers/net/mlx5/mlx5_txq.c | 14 +-
drivers/net/mlx5/rte_pmd_mlx5.h | 50 +++-
drivers/net/mlx5/version.map | 3 +
29 files changed, 838 insertions(+), 181 deletions(-)
--
2.25.1
More information about the dev
mailing list