This is an early RFC for a transport specific early detecton of modern virtio, which is most relevant for transitional devices on big endian platforms, when drivers access the config space before FEATURES_OK is set.
The most important part that is missing here is fixing all the problems that arise in the situation described in the previous paragraph, when the config is managed by a vhost device (and thus outside QEMU. This series tackles this problem only for virtio_net+vhost as an example. If this approach is deemed good, we need to do something very similar for every single affected device. This series was only lightly tested. The vhost stuff is entirely untested, unfortunately I don't have a working setup where this handling would be needed (because the config space is handled in the device). DPDK is not supported on s390x so at the moment I can't test DPDK based setups. v1 -> v2: * add callback * tweak feature manipulation * add generic handling for vhost that needs to be called by devices * add handling for virtio Halil Pasic (5): virtio: introduce virtio_force_modern() virtio-ccw: use virtio_force_modern() virtio-pci: use virtio_force_modern() vhost: push features to backend on force_modern virtio-net: handle force_modern for vhost hw/net/virtio-net.c | 20 ++++++++++++++++++++ hw/s390x/virtio-ccw.c | 3 +++ hw/virtio/vhost.c | 17 +++++++++++++++++ hw/virtio/virtio-pci.c | 1 + hw/virtio/virtio.c | 13 +++++++++++++ include/hw/virtio/vhost.h | 2 ++ include/hw/virtio/virtio.h | 2 ++ 7 files changed, 58 insertions(+) base-commit: 2c3e83f92d93fbab071b8a96b8ab769b01902475 -- 2.25.1