From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48564) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gWtFB-0008TM-4O for qemu-devel@nongnu.org; Tue, 11 Dec 2018 20:23:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gWtF6-0006rd-6T for qemu-devel@nongnu.org; Tue, 11 Dec 2018 20:23:20 -0500 Received: from mx1.redhat.com ([209.132.183.28]:33874) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gWtF5-0006r5-B7 for qemu-devel@nongnu.org; Tue, 11 Dec 2018 20:23:16 -0500 Date: Tue, 11 Dec 2018 20:22:49 -0500 From: "Michael S. Tsirkin" Message-ID: <20181211202225-mutt-send-email-mst@kernel.org> References: <20181205195704.17605-1-ehabkost@redhat.com> <20181212011851.GP7141@habkost.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20181212011851.GP7141@habkost.net> 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: Eduardo Habkost Cc: qemu-devel@nongnu.org, 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 Nothing, I'm packing up the 1st pull request. On Tue, Dec 11, 2018 at 11:18:51PM -0200, Eduardo Habkost wrote: > 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