On 02/24/2012 01:02 PM, Paolo Bonzini wrote:
Hi all,
a few weeks ago Stefan Hajnoczi pointed me to his work on virtio-blk
performance.
Stefan's work had two sides. First, he captured very nice performance
data of the block layer at
http://www.linux-kvm.org/page/Virtio/Block/Latency; second, in order to
measure peak performance, he basically implemented "vhost-blk" in
userspace.
I don't think the improvements here have anything to do with the block layer.
We've done the same thing with virtio-net and saw impressive performance results
as a consequence. Conversely, we see a similar improvement by applying the same
technique to vhost-net.
Virtio really wants each virtqueue to be processed in a separate thread. On a
multicore system, there's considerable improvement doing this.
I think that's where we ought to start. We really just need the block layer to
be re-entrant, we don't actually need qcow2 or anything else that uses
coroutines to use full threads.
Or at least, as far as I know, we don't have any performance data to suggest
that we do.
Regards,
Anthony Liguori