Am 05.02.2015 um 15:00 schrieb Stefan Hajnoczi:
On Fri, Jan 30, 2015 at 10:08:02PM +0100, Peter Lieven wrote:
Just wondering if VIRTQUEUE_MAX_SIZE in include/hw/virtio/virtio.h should not
be equal to IOV_MAX instead of the hardcoded 1024?
The vring queue size is guest-visible to some extent (e.g. vring memory
layout). Tying it to a constant that is defined by the host operating
system could lead to problems (e.g. live migration between different
hosts).
Anyway, all of the virtio devices have a queue size that is less than or
equal to VIRTQUEUE_MAX_SIZE (and there is an assertion to check this in
virtio_add_queue()).
Guests are supposed to honor the vring queue size, although indirect
descriptors seem to be able to use up to VIRTQUEUE_MAX_SIZE according to
my understanding of QEMU's virtio.c code.
Why would you like to use IOV_MAX?
The idea was that IOV_MAX is the limit in case of at least virtio-blk. The host
will not support more than IOV_MAX iovecs passed to a block request.
Peter