On Fri, Aug 12, 2011 at 06:50:57AM +0100, Stefan Hajnoczi wrote: > I do see the drawbacks of leaving accounting in block.c on every > request. For example, we'll fetch the timestamp for internal requests > as well as external requests from hardware emulation. Due to memory > mapping and bounce buffers it is also possible that requests get > split. Multiwrite also changes the I/O pattern. > > So I guess this external accounting cookie approach is okay. We just > need to be strict about reviewing any code that uses bdrv_aio_*() to > make sure it has accounting in place where appropriate.
The most important point is that we potentially have a lot of bdrv_aio_read/write calls for a single guest request. That's the case for both scsi and ide, only virtio does 1 call per guest request (modulo multiwrite).