From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:44511) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1THHvi-0006BQ-Ak for qemu-devel@nongnu.org; Thu, 27 Sep 2012 13:31:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1THHvd-0007XM-6e for qemu-devel@nongnu.org; Thu, 27 Sep 2012 13:31:18 -0400 Received: from greensocs.com ([87.106.252.221]:45108 helo=s15328186.onlinehome-server.info) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1THHvc-0007X6-Sf for qemu-devel@nongnu.org; Thu, 27 Sep 2012 13:31:13 -0400 Message-ID: <50648D57.502@greensocs.com> Date: Thu, 27 Sep 2012 19:31:03 +0200 From: =?ISO-8859-1?Q?KONRAD_Fr=E9d=E9ric?= MIME-Version: 1.0 References: <1347876042-22609-1-git-send-email-e.voevodin@samsung.com> In-Reply-To: <1347876042-22609-1-git-send-email-e.voevodin@samsung.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC v2 00/12] Virtio-mmio refactoring. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Evgeny Voevodin , qemu-devel@nongnu.org, Mark Burton , fred.konrad@greensocs.com Hi, We actually want to add virtio models for arm, therefore these patches are really helpful. We will try it, start looking at the issues. Any feedback ? On 17/09/2012 12:00, Evgeny Voevodin wrote: > Previous RFC you can find at > http://lists.gnu.org/archive/html/qemu-devel/2012-04/msg03665.html > Yes, long time ago... > Since I'm not sure when I'll be able to continue on this, > I'm publishing this work as is. > In this patchset I tried to split virtio-xxx-pci devices into > virtio-pci + virtio-xxx (blk, net, serial,...). Also virtio-mmio > transport is introduced based on Peter's work which is accessible > here: http://lists.gnu.org/archive/html/qemu-devel/2011-11/msg01870.html > > The main idea was to let users specify > -device virtio-pci,id=virtio-pci.0 > -device virtio-blk,transport=virtio-pci.0,... > > and > > -device virtio-mmio,id=virtio-mmio.0 > -device virtio-blk,transport=virtio-mmio.0,... > > I created virtio-pci and virtio-mmio transport devices and tried to enclose > back-end functionality into virtio-blk, virtio-net, etc. On > initialization of transport device it creates a bus to which a back-end device > could be connected. Each back-end device is implemented in corresponding source > file. As for PCI transport, I temporary placed it in a new virtio-pci-new.c file > to not break a functionality of still presented virtio-xxx-pci devices. > > Known issues to be resolved: > 1. On creation of back-end we need to resolve somehow if props were explicitly set > by user. > 2. Back-end device can't be initialized if there are no free bus created by transport, > so you can't specify > -device virtio-blk,transport=virtio-pci.0,... > -device virtio-pci,id=virtio-pci.0 > 3. Implement virtio-xxx-devices such that they just create virtio-pci and virtio-xxx > devices during initialization. > 4. Refactor all remaining back-ends since I just tried blk, net, serial and balloon. > 5. Refactor s390 > 6. Further? > > Evgeny Voevodin (9): > Virtio: Add transport bindings. > hw/qdev-properties.c: Add "transport" property. > hw/pci.c: Make pci_add_option_rom global visible > hw/virtio-serial-bus.c: Add virtio-serial device. > hw/virtio-balloon.c: Add virtio-balloon device. > hw/virtio-net.c: Add virtio-net device. > hw/virtio-blk.c: Add virtio-blk device. > hw/virtio-pci-new.c: Add VirtIOPCI device. > hw/exynos4210.c: Create two virtio-mmio transport instances. > > Peter Maydell (3): > virtio: Add support for guest setting of queue size > virtio: Support transports which can specify the vring alignment > Add MMIO based virtio transport > > hw/Makefile.objs | 3 + > hw/exynos4210.c | 13 + > hw/pci.c | 3 +- > hw/pci.h | 2 + > hw/qdev-properties.c | 29 ++ > hw/qdev.h | 3 + > hw/virtio-balloon.c | 42 +++ > hw/virtio-balloon.h | 9 + > hw/virtio-blk.c | 65 ++++ > hw/virtio-blk.h | 15 + > hw/virtio-mmio.c | 400 +++++++++++++++++++++ > hw/virtio-net.c | 59 +++ > hw/virtio-net.h | 16 + > hw/virtio-pci-new.c | 925 ++++++++++++++++++++++++++++++++++++++++++++++++ > hw/virtio-pci.h | 18 + > hw/virtio-serial-bus.c | 44 +++ > hw/virtio-serial.h | 11 + > hw/virtio-transport.c | 147 ++++++++ > hw/virtio-transport.h | 74 ++++ > hw/virtio.c | 20 +- > hw/virtio.h | 2 + > 21 files changed, 1896 insertions(+), 4 deletions(-) > create mode 100644 hw/virtio-mmio.c > create mode 100644 hw/virtio-pci-new.c > create mode 100644 hw/virtio-transport.c > create mode 100644 hw/virtio-transport.h >