This includes two optimization of virtio: - "slimming down" VirtQueueElements by not including room for 1024 buffers. This makes malloc much faster.
- optimizations to limit the number of address_space_translate calls in virtio.c, from Vincenzo and myself. Thanks, Paolo v1->v2: improved commit messages [Conny] add assertions on sz [Conny] change bools from 1 and 0 to "true" and "false" [Conny] update shadow avail_idx in virtio_queue_set_last_avail_idx [Michael] collect Reviewed-by Paolo Bonzini (7): virtio: move VirtQueueElement at the beginning of the structs virtio: move allocation to virtqueue_pop/vring_pop virtio: introduce qemu_get/put_virtqueue_element virtio: introduce virtqueue_alloc_element virtio: slim down allocation of VirtQueueElements vring: slim down allocation of VirtQueueElements virtio: combine the read of a descriptor Vincenzo Maffione (3): virtio: cache used_idx in a VirtQueue field virtio: read avail_idx from VQ only when necessary virtio: combine write of an entry into used ring hw/9pfs/9p.c | 2 +- hw/9pfs/virtio-9p-device.c | 17 +- hw/9pfs/virtio-9p.h | 2 +- hw/block/dataplane/virtio-blk.c | 11 +- hw/block/virtio-blk.c | 23 +-- hw/char/virtio-serial-bus.c | 78 +++++---- hw/display/virtio-gpu.c | 25 ++- hw/input/virtio-input.c | 24 ++- hw/net/virtio-net.c | 69 +++++--- hw/scsi/virtio-scsi-dataplane.c | 15 +- hw/scsi/virtio-scsi.c | 26 ++- hw/virtio/dataplane/vring.c | 62 ++++--- hw/virtio/virtio-balloon.c | 22 ++- hw/virtio/virtio-rng.c | 10 +- hw/virtio/virtio.c | 340 +++++++++++++++++++++++++----------- include/hw/virtio/dataplane/vring.h | 2 +- include/hw/virtio/virtio-balloon.h | 2 +- include/hw/virtio/virtio-blk.h | 5 +- include/hw/virtio/virtio-net.h | 2 +- include/hw/virtio/virtio-scsi.h | 15 +- include/hw/virtio/virtio-serial.h | 2 +- include/hw/virtio/virtio.h | 13 +- 22 files changed, 486 insertions(+), 281 deletions(-) -- 2.5.0