MLX5DV(7)
π MLX5DV π
ok so bestie, welcome to the mlx5dv manual page β that's mlx5dv, direct verbs for mlx5 devices, living in the Miscellaneous Information Manual like the icon it is. β¨
Basically: this is low level access to mlx5 devices so you can do your data path operations and literally skip the general branching that ibv_post_send(3) makes you sit through. no cap. π
πΈ NAME πΈ
mlx5dv β Direct verbs for mlx5 devices.
This is low level access to mlx5 devices to perform data path operations, without general branching performed by ibv_post_send(3).
β¨ DESCRIPTION β¨
Okay so here's the tea, bestie. π
The libibverbs API is an abstract one. It's agnostic to any underlying provider specific implementation β it doesn't care who's underneath, it just vibes. And like, that abstraction has a genuine advantage: user applications portability. Your app can hop between providers and nobody's mad. π¦
But β and this is the part nobody warns you about β it has a performance penalty. The abstraction tax is real. π
For some applications, optimizing performance is more important than portability. That's just the truth.
The mlx5 direct verbs API is intended for such applications. It exposes mlx5 specific low level data path (send / receive / completion) operations, letting the application bypass the libibverbs data path API entirely. main character energy tbh. π
This interface consists from one hardware specific header file with relevant inline functions and conversion logic from ibverbs structures to mlx5 specific structures.
The direct include of mlx5dv.h together with linkage to mlx5 library will allow usage of this new interface.
π¨ bestie listen β once an application uses the direct flow, the locking scheme is fully managed by itself. There is an expectation that no mixed flows in the data path for both direct/non-direct access will be by same application. so don't mix, fr fr. π
π NOTES π
All Mellanox NIC devices starting from Connect-IB (Connect-IB, ConnectX-4, ConnectX-4Lx, ConnectX-5, ...) implement the mlx5 API. β¨
So using the mlx5 direct verbs does not limit the applications to a single NIC HW device β which means you keep some level of portability. not me being shocked that you can have both. ππ
π SEE ALSO π
ibv_post_send(3)verbs(7)mlx5dv_is_supported(3)
π«Ά AUTHORS π«Ά
Leon Romanovsky <leonro@mellanox.com> β thank you for your service, king. πβ
and that's the whole page bestie!! π this was version 1.0.0, dated 2017-02-02, and it's the MLX5DV(7) page from the Miscellaneous Information Manual. slay, go forth and bypass that data path API. πβ¨π¦
π¦ where this page comes from
- alpine 3.24: rdma-core-doc 61.0-r0 Β· GPL-2.0-only OR BSD-2-Clause
- arch rolling: rdma-core 65.0-1 Β· GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-MIT AND GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-FreeBSD AND GPL-2.0-or-later OR LicenseRef-Intel-BSD-3-Clause AND GPL-2.0-or-later OR LicenseRef-PathScale-BSD-Patent-License AND CC0-1.0 AND MIT AND BSD-2-Clause AND CPL-1.0 OR BSD-2-Clause OR GPL-2.0-or-later
- centos-stream 10: rdma-core-devel 62.0-3.el10 Β· GPLv2 or BSD
- centos-stream 9: rdma-core-devel 61.0-3.el9 Β· GPLv2 or BSD
- centos-stream 9: rdma-core-devel 61.0-3.el9 Β· GPLv2 or BSD
- debian bookworm: libibverbs-dev 44.0-2 Β· BSD-MIT OR GPL-2.0-only
- debian trixie: libibverbs-dev 56.1-1 Β· BSD-MIT OR GPL-2.0-only
- fedora 43: rdma-core-devel 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 43: rdma-core-devel 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.1^20260812git975bdaf-1.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: rdma-core-devel 61.1^20260812git975bdaf-1.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- nixos 26.05: rdma-core 62.0
- nixpkgs unstable: rdma-core 65.0
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: rdma-core-devel 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- ubuntu jammy: libibverbs-dev 39.0-1 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: libibverbs-dev 50.0-2build2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: libibverbs-dev 50.0-2ubuntu0.2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu questing: libibverbs-dev 56.1-1ubuntu1
- ubuntu resolute: libibverbs-dev 61.0-2ubuntu3 Β· BSD-MIT OR GPL-2.0-only
- ubuntu stonking: libibverbs-dev 64.0-1ubuntu1 Β· BSD-MIT OR GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms