From: Shannon Zhao <shannon.z...@linaro.org> The reason to do this is that the virtio-net-device can't expose host features to guest while using virtio-mmio. So the performance is low.
The virtio-*-pci, virtio-*-s390, and virtio-*-ccw already have the ability to forward property accesses to the backend child, by calling *_virtio_*_instance_init -> qdev_alias_all_properties. So if we move the host features to backends, it doesn't break the backwards compatibility for virtio-*-pci, virtio-*-s390, and virtio-*-ccw. Here we move the host features to backends, involving DEFINE_VIRTIO_NET_FEATURES, DEFINE_VIRTIO_SCSI_FEATURES. So the virtio-mmio devices could have the host freatures, and this has a great performance improvement to virtio-mmio, especially to virtio-net-device. changes since v1: * drop unnecessary change of adding device_plugged hook for virtio-ccw and s390-virtio-bus (Cornelia) Shannon Zhao (2): hw/net/virtio-net: Move DEFINE_VIRTIO_NET_FEATURES to virtio-net virtio-scsi: Move DEFINE_VIRTIO_SCSI_FEATURES to virtio-scsi hw/net/virtio-net.c | 4 ++++ hw/s390x/s390-virtio-bus.c | 2 -- hw/s390x/virtio-ccw.c | 2 -- hw/scsi/virtio-scsi.c | 5 +++++ hw/virtio/virtio-pci.c | 2 -- include/hw/virtio/virtio-net.h | 1 + include/hw/virtio/virtio-scsi.h | 1 + 7 files changed, 11 insertions(+), 6 deletions(-) -- 2.0.4