Friendly ping. 3.1.0 is tagged now, so there's anything else blocking this series?
On Wed, Dec 05, 2018 at 05:57:02PM -0200, Eduardo Habkost wrote: > Existing modern-only device types are not being touched by v3, as > they don't need separate variants. However, I plan to implement > separate cleanups in the code that calls virtio_pci_force_virtio_1(), > first, and then propose additional changes (e.g. deprecating > disable-legacy and disable-modern in those device types). > > Changes v3 -> v4: > * Trivial comment fixes (Cornelia Huck) > * Test code update (Caio Carrara) > > Changes v2 -> v3: > * Split into two separate patches (type registration helper > and introduction of new types) > * Rewrote virtio_pci_types_register() completely: > * Replaced magic generation of type names with explicit fields in > VirtioPCIDeviceTypeInfo > * Removed modern_only field (not necessary anymore) > * Don't register a separate base type unless necessary > > Changes v1 -> v2: > * Removed *-0.9 devices. Nobody will want to use them, if > transitional devices work with legacy drivers > (Gerd Hoffmann, Michael S. Tsirkin) > * Drop virtio version from name: rename -1.0-transitional to > -transitional (Michael S. Tsirkin) > * Renamed -1.0 to -non-transitional > * Don't add any extra variants to modern-only device types > (they don't need it) > * Fix typo on TYPE_VIRTIO_INPUT_HOST_PCI (crash reported by > Cornelia Huck) > * No need to change cast macros for modern-only devices > * Rename virtio_register_types() to virtio_pci_types_register() > > Original patch description: > > Many of the current virtio-*-pci device types actually represent > 3 different types of devices: > * virtio 1.0 non-transitional devices > * virtio 1.0 transitional devices > * virtio 0.9 ("legacy device" in virtio 1.0 terminology) > > That would be just an annoyance if it didn't break our device/bus > compatibility QMP interfaces. With this multi-purpose device > type, there's no way to tell management software that > transitional devices and legacy devices require a Conventional > PCI bus. > > The multi-purpose device types would also prevent us from telling > management software what's the PCI vendor/device ID for them, > because their PCI IDs change at runtime depending on the bus > where they were plugged. > > This patch adds separate device types for each of those virtio > device flavors: > > * virtio-*-pci: the existing multi-purpose device types > * virtio-*-pci-transitional: virtio-1.0 device supporting legacy drivers > * virtio-*-pci-non-transitional: modern-only > > Reference to previous discussion that originated this idea: > https://www.mail-archive.com/qemu-devel@nongnu.org/msg558389.html > > Eduardo Habkost (2): > virtio: Helper for registering virtio device types > virtio: Provide version-specific variants of virtio PCI devices > > hw/virtio/virtio-pci.h | 78 +++++++-- > hw/display/virtio-gpu-pci.c | 7 +- > hw/display/virtio-vga.c | 7 +- > hw/virtio/virtio-crypto-pci.c | 7 +- > hw/virtio/virtio-pci.c | 267 ++++++++++++++++++++++------- > tests/acceptance/virtio_version.py | 176 +++++++++++++++++++ > 6 files changed, 452 insertions(+), 90 deletions(-) > create mode 100644 tests/acceptance/virtio_version.py > > -- > 2.18.0.rc1.1.g3f1ff2140 > -- Eduardo