Gerd Hoffmann wrote:
Anthony Liguori wrote:
Gerd Hoffmann wrote:
Hi,
I really want to use readv/writev though. With virtio, we get a
scatter/gather list for each IO request.
Yep, I've also missed pwritev (or whatever that syscall would be named).
Once I post the virtio-blk driver, I'll follow up a little later with
some refactoring of the block device layers. I think it can be made
much simpler while still remaining asynchronous.
IMHO the only alternative to that scheme would be to turn the block
drivers in some kind of remapping drivers for the various file formats
which don't actually perform the I/O. Then you can handle the actual
I/O in a generic way using whatever API is available, be it posix-aio,
linux-aio or slow-sync-io.
That's part of my plan.
Oh, cool. Can you also turn them into a sane shared library while being
at it? The current approach to compile it once for qemu and once for
qemu-img with -DQEMU_TOOL isn't that great. But if you factor out the
actual I/O the block-raw.c code should have no need to mess with qemu
internals any more and become much cleaner and simpler ...
Yeah, it is definitely something that should be turned into a shared
library. I don't think I'll attempt that at first but I do agree it's
the right direction to move toward.
Regards,
Anthony Liguori
cheers,
Gerd