On Thu, Apr 29, 2021 at 04:00:38PM +0100, Richard W.M. Jones wrote: > On Thu, Apr 29, 2021 at 03:41:29PM +0100, Stefan Hajnoczi wrote: > > On Thu, Apr 29, 2021 at 03:22:59PM +0100, Richard W.M. Jones wrote: > > > This is where I get confused about what this library actually does. > > > It's not just a nicer wrapper around io_uring, but what is it actually > > > doing? > > > > It's a library for what QEMU calls protocol drivers (POSIX files, > > userspace NVMe driver, etc). In particular, anything offering > > multi-queue block I/O fits into libblkio. > > > > It is not intended to replace libnbd or other network storage libraries. > > libblkio's properties API is synchronous to keep things simple for > > applications. Attaching to network storage needs to be asynchronous, > > although the libblkio API could be extended if people want to support > > network storage. > > I think what confuses me is why is NVMe any different from io_uring? > ie would this work? > > $ blkio-info --output=json io_uring path=/dev/nvme0
The libblkio io_uring driver can handle /dev/nvme* block devices. The future userspace NVMe driver mentioned above will be a VFIO PCI driver, like the block/nvme.c driver in QEMU today. It uses a PCI device directly, not a /dev/nvme* block device. Stefan
signature.asc
Description: PGP signature