From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:45026) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TZNxt-0005k8-Ox for qemu-devel@nongnu.org; Fri, 16 Nov 2012 10:36:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TZNxq-0002b1-Mf for qemu-devel@nongnu.org; Fri, 16 Nov 2012 10:36:21 -0500 Received: from greensocs.com ([87.106.252.221]:38694 helo=s15328186.onlinehome-server.info) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TZNxq-0002ah-Gi for qemu-devel@nongnu.org; Fri, 16 Nov 2012 10:36:18 -0500 Received: from localhost (unknown [127.0.0.1]) by s15328186.onlinehome-server.info (Postfix) with ESMTP id 472CB42AFCE for ; Fri, 16 Nov 2012 15:36:16 +0000 (UTC) From: fred.konrad@greensocs.com Date: Fri, 16 Nov 2012 16:35:56 +0100 Message-Id: <1353080159-10536-1-git-send-email-fred.konrad@greensocs.com> Subject: [Qemu-devel] [RFC PATCH 0/3] Virtio refactoring. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mark.burton@greensocs.com Hi, I submit this RFC to be sure I'm doing the right thing about the VirtioBus. I push the patchset here : git://git.greensocs.com/qemu_virtio.git virtio_refact What I proposed to do : * Introduce a new VirtioBus ( same way as scsi-bus.c ), with VirtIODevice interface : -> callback to completely abstract the VirtioDevice from VirtioPCI. -> for the queue, load/save the queue/config, features, ..., other ? * Add a VirtioBus to the VirtioPCIProxy. ( virtio-pci.c ) : -> moving all to the newer callback. * For each of the virtio-device : ( virtio-x.c ) -> making a separate class for virtio-x which is a VirtioDevice. -> making a virtio-x-pci which has a virtio-x. * Create virtio-mmio ( virtio-mmio.c ). What it is done in this RFC : * introduce VirtioBus, which can be added to Virtio transports like virtio-pci or virtio-mmio. I think the interface must be improved. * add a VirtioBus to the existing VirtioPCIProxy ( virtio-pci ), and add a "virtio-pci" device which can be loaded without a VirtIODevice, and create a VirtioBus. * add a "virtio-blk" device which must be connected on a virtio-bus, to try the virtio-bus and virtio-pci. The info qtree return this structure : bus: main-system-bus type System dev: i440FX-pcihost, id "" bus: pci.0 type PCI dev: virtio-pci, id "" bus: virtio.0 type VIRTIO dev: virtio-blk, id "" What I must improve : * the Virtio-PCI still need the VirtIODevice. * others devices. * spliting virtio-x-pci to virtio-x + virtio-pci. Did I miss something ? Thanks, Fred.