Linux User Library for NVM Express
summary
libnvme is a public C library on GitHub that exposes a layered API to Linux NVMe admin features, implements about 250 functions in ~20,000 lines (half docs), and targets PCIe, FC, TCP and loopback transports while explicitly working with the kernel driver (not bypassing IO). it provides utilities that automate complex sequences (wait for telemetry event, latch, allocate and read loop, verify sequence, rearm), implements ~90% of the spec but is only 20% tested and omits persistent event logs and the management interface.
AI-written summary · about
chapters (19)
- 0:00Introduction
- 1:06Motivation
- 2:55Software Hierarchy
- 4:29Lean Interface
- 5:50Admin Commands
- 6:28Transports
- 8:00User Space
- 8:55Future Plans
- 10:07Original Driver
- 14:11Configuration Files
- 16:56NVM Types
- 18:39Commands
- 19:34Logs
- 20:26Constraints
- 21:05telemetry
- 22:34allocate
- 23:06fabric
- 24:05minitree
- 26:24work to remain
related talks
19mlibvfio-user: Status Update
17mHow advancements in storage are triggering innovations in open-source and vice-versa
36mDrive your NAND within Linux
39mSecured I/O in the Cloud with NVMe-Over-TCP
21mNVMe Emulation Performance Optimization
50mLinux Virtualization Based Security (LVBS)
16mEmbracing NVMe/TCP on the desktop
50mOptimizing for NVMe Drives: The 10 Microsecond Challenge
