From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47871) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gWtBI-00073O-Lo for qemu-devel@nongnu.org; Tue, 11 Dec 2018 20:19:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gWtBD-0004Vr-CC for qemu-devel@nongnu.org; Tue, 11 Dec 2018 20:19:20 -0500 Received: from mx1.redhat.com ([209.132.183.28]:43110) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gWtBD-0004VR-4C for qemu-devel@nongnu.org; Tue, 11 Dec 2018 20:19:15 -0500 Date: Tue, 11 Dec 2018 23:18:51 -0200 From: Eduardo Habkost Message-ID: <20181212011851.GP7141@habkost.net> References: <20181205195704.17605-1-ehabkost@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181205195704.17605-1-ehabkost@redhat.com> Subject: Re: [Qemu-devel] [PATCH for-4.0 v4 0/2] virtio: Provide version-specific variants of virtio PCI devices List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, "Michael S. Tsirkin" Cc: Gonglei , Paolo Bonzini , Stefan Hajnoczi , Amit Shah , Andrea Bolognani , Cleber Rosa , Marcel Apfelbaum , Fam Zheng , Cornelia Huck , Kevin Wolf , Max Reitz , libvir-list@redhat.com, Wainer dos Santos Moschetta , Philippe =?iso-8859-1?Q?Mathieu-Daud=E9?= , Markus Armbruster , Laine Stump , Jason Wang , Gerd Hoffmann , Daniel =?iso-8859-1?Q?P=2E_Berrang=E9?= , Caio Carrara 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