How to get access of Admin Submission/Completion queues for NVMe devices from any driver or user space application to submit Admin command ?

Few user space applications are available in market for example xnvme, but does not have any interaction with Admin Submission/Completion queues. Also IOCTLs are not very prominent . Is there any ways to get access to the native NVMe Mac driver source code?

Thanks, hopefully we will get some positive response here.

Replies

Hi, I do actually have a work-in-progress NVMe driver for xNVMe based on Driverkit.

At the moment, it's only doing one command at a time (queue depth = 1), and blocks until the command returns. It's plenty fast for prototyping, but not for any high performance work. I hope to make it async and much, much faster in the future, but this is at least a proof-of-concept.

I need to fix up the memory management before I feel confident in releasing the first beta version. I'll take a look at it tomorrow.

What is your use-case? Maybe you can come to the xNVMe Discord server and we can discuss what you are looking for.

The NVMe driver is now released, and supports larger queue depths and is much, much faster now (benchmarking 1000k IOPS) https://github.com/OpenMPDK/MacVFN