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 ... cheers, Gerd