Simon A. F. Lund a43ddcd02b docs(tools): document the CUSE naming convention for qublk and homi
Name /dev/ublkb<N>-nvme and /dev/xnvme/<bdf> explicitly, cross-reference
the two, and note --no-cuse on both tools' pages; qublk's page also
says which devices get one, and gets the -Dwith-cuse build option, the
128KiB passthru payload cap and the vectored passthru's 125-segment
ceiling.

Assisted-by: Claude Code:claude-sonnet-5
Signed-off-by: Simon A. F. Lund <os@safl.dk>
2026-10-07 15:25:20 +02:00
2024-09-11 13:56:13 +02:00
2024-09-11 13:56:13 +02:00
2026-03-04 13:14:58 +01:00

xNVMe Logo

xNVMe: cross-platform libraries and tools for NVMe devices

CI Coverity pre-commit REUSE status

See: https://xnvme.io/ for documentation

xNVMe provides APIs, libraries, and tools for user space programming of NVMe devices on Linux, FreeBSD, macOS, and Windows, through a single C API backed by the libxnvme library. The library carries backends utilizing and interfacing with the following, chosen at runtime, so the same application code runs unmodified across them:

  • Linux: io_uring, io_uring_cmd, libaio, block-layer IOCTLs
  • FreeBSD, macOS, Windows: the platform's native NVMe driver
  • SPDK, the popular user space NVMe driver on Linux and FreeBSD, for CPU-initiated I/O
  • uPCIe, a blazingly fast user space PCIe driver on Linux, with P2P data movement and support for CPU-initiated, Accelerator-assisted, and Accelerator-initiated I/O; currently compatible with CUDA and HIP (ROCm)

On top of libxnvme:

  • Command sets: libxnvme_nvm (NVM), libxnvme_znd (Zoned), libxnvme_kvs (KV)
  • CLI tools: xnvme, lblk, zoned, kvs, xdd
  • xnvmeperf, synthetic workload generation with minimal overhead, to benchmark I/O processing at unprecedented efficiency across all of xNVMe's backends
  • homi, the software equivalent of SR-IOV: a daemon enabling multiple users, different processes on the host as well as compute kernels on accelerators, to run I/O directly against a single NVMe controller
  • qublk, a ublk-server implementation enabling kernel I/O and file systems to run in concert with the blazingly fast user space NVMe drivers

Contact and Contributions

xNVMe: is in active development and maintained by Simon A. F. Lund simon.lund@samsung.com, pull requests are most welcome. See, CONTRIBUTORS.md for a list of contributors to the current and previous versions of xNVMe. For a contributor-guidelines then have a look at the online documentation:

S
Description
No description provided
Readme BSD-3-Clause 23 MiB
Languages
C 68%
Python 21.4%
Shell 5.2%
Meson 1.7%
Makefile 1.5%
Other 2.2%