From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51208) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TsZQP-0001ch-BM for qemu-devel@nongnu.org; Tue, 08 Jan 2013 08:41:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TsZQN-0000hh-NP for qemu-devel@nongnu.org; Tue, 08 Jan 2013 08:41:05 -0500 Received: from greensocs.com ([87.106.252.221]:60298 helo=s15328186.onlinehome-server.info) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TsZQN-0000hc-DQ for qemu-devel@nongnu.org; Tue, 08 Jan 2013 08:41:03 -0500 Message-ID: <50EC21E9.9030106@greensocs.com> Date: Tue, 08 Jan 2013 14:40:57 +0100 From: =?ISO-8859-1?Q?KONRAD_Fr=E9d=E9ric?= MIME-Version: 1.0 References: <1357584074-10852-1-git-send-email-fred.konrad@greensocs.com> <874nisu7tp.fsf@codemonkey.ws> In-Reply-To: <874nisu7tp.fsf@codemonkey.ws> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 00/61] Virtio refactoring. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: kwolf@redhat.com, peter.maydell@linaro.org, e.voevodin@samsung.com, mst@redhat.com, mark.burton@greensocs.com, qemu-devel@nongnu.org, agraf@suse.de, amit.shah@redhat.com, aneesh.kumar@linux.vnet.ibm.com, stefanha@redhat.com, cornelia.huck@de.ibm.com, pbonzini@redhat.com, afaerber@suse.de On 07/01/2013 20:11, Anthony Liguori wrote: > fred.konrad@greensocs.com writes: > >> From: KONRAD Frederic >> >> Here is the full series for virtio-refactoring. >> >> You can clone that from here : >> git.greensocs.com/home/greensocs/git/qemu_virtio.git virtio_refactoring >> >> virtio-mmio parts is not included but you can clone them from here : >> git.greensocs.com/home/greensocs/git/qemu_virtio.git virtio_refactoring_mmio >> >> I think that the old VirtioBindings can be fixed later as nothing use interface >> now and I didn't find any example in the code. >> >> Also I didn't try all the devices. > I appreciate the thoroughness here but 66 patches is too much all at > once. Can this be done in chunks or more reasonable patch sizes? It > would make review and committing a lot easier. I made little step to make review easier. I can cut the series between each devices. Or do you prefer fusionning some step ? Fred > Regards, > > Anthony Liguori > >> Thanks, >> >> Fred >> >> Changes between v9: >> * Refactored all the remaining devices with the same way as virtio-blk. >> * Moved the virtio device's structure in the header. >> * Fixed the init with only one allocation. >> * Fixed the indentation and code style errors. >> * s390 device's are refactored the same way as pci one. >> * Moved max_dev from BusState to BusClass. >> >> Changes v8 -> v9: >> * Modified virtio-bus.c function name. (virtio_device_ prefix.) >> * Removed qdev_create(..) in virtio-blk-x, object_new >> + object_property_add_child used instead. >> >> Changes v7 -> v8: >> * Moved virtio-blk-pci PCI IDs to "Add the virtio-blk device.". >> * virtio : Added virtio_device_init which init children and plug the device. >> * virtio : Added virtio_common_cleanup in the same way as >> virtio_common_init. >> * virtio-blk : Moved virtio_plug_device to virtio-device init. >> * virtio-blk : Inline the virtio_blk_exit function in >> virtio_blk_device_exit and use virtio_common_cleanup. >> * virtio-s390-bus : Added virtio-s390-bus. >> * virtio-s390-device : Added a virtio-s390-bus. >> * virtio-blk-s390 : Switched to the new API. >> * virtio : removed function pointer. >> * virtio : removed VirtinBindings. >> * virtio : cleaned up init and exit function. >> >> Changes v6 -> v7: >> * virtio-bus : Added virtio-bus-reset. >> * virtio-pci : Fixed virtio-pci-exit. >> * virtio-pci : Added virtio-pci-rst. >> * virtio-pci : Added VirtioPCIClass filled with an init function. >> * virtio-blk : Added virtio_blk_set_conf. >> * virtio-blk : QOM casts. >> * virtio-blk-pci : Switched to the new API. >> >> Changes v5 -> v6: >> * Renamed virtio_common_init_ to virtio_init, modify virtio_common_init to >> allocate and call virtio_init. Drop the unused structure size parameters. >> * Renamed init/exit callback in VirtioBusClass. >> * Renamed virtio_blk_init virtio_blk_common_init. >> * Modified virtio_blk_init to call virtio_blk_common_init. >> >> Changes v4 -> v5: >> * use ERROR_CLASS_GENERIC_ERROR in place of creating a new error type for >> the maximum device limitation. ( Peter ) >> * Removed bus_in_use function. We assume that the virtio-bus is not in use, >> when plugin in. ( Peter ) >> * Added virtio_bus_destroy_device(). >> * Implemented the exit function of virtio-pci. >> * Implemented the init callback for virtio-pci ( must be modified, it still >> access vdev directly. ). >> * Implemented the exit callback for virtio-pci. >> * Started virtio-device refactoring. >> * Started virtio-blk refactoring. >> >> Changes v3 -> v4: >> * Added virtio-bus.o in Makefile.objs ( accidentally dropped from v3 ). >> * *const* TypeInfo in virtio-bus. >> * Introduced virtio-pci-bus. >> * Reintroduced virtio-pci. >> * Introduced virtio-device. >> * Started virtio-blk refactoring. >> * Added an error type in qerror.h for the "bus full" error. >> >> Changes v2 -> v3: >> * Added VirtioBusClass. >> * Renamed VirtioBus -> VirtioBusState. >> * Renamed qbus -> parent_obj. >> * Plug the device only in a non-full bus. >> >> Changes v1 -> v2: >> * All the little fix you suggest ( License, Debug printf, naming convention, >> ...) >> * Added get_virtio_device_id(), and remove the pci_id* from the VirtioBus >> structure. >> * Added virtio_bus_reset(). >> * Added cast macros VIRTIO_BUS. >> * Added virtio_bus_plug_device. >> * Replaced the old-style "bus->qbus" by BUS() macro. >> >> KONRAD Frederic (61): >> qdev : add a maximum device allowed field for the bus. >> virtio-bus : introduce virtio-bus >> virtio-pci-bus : introduce virtio-pci-bus. >> virtio-pci : refactor virtio-pci device. >> virtio-device : refactor virtio-device. >> virtio-s390-bus : add virtio-s390-bus. >> virtio-s390-device : create a virtio-s390-bus during init. >> virtio-blk : show VirtIOBlock structure. >> virtio-blk : don't use pointer for configuration. >> virtio-blk : add the virtio-blk device. >> virtio-blk-pci : switch to new API. >> virtio-blk-s390 : switch to the new API. >> virtio-blk : cleanup : use QOM cast. >> virtio-blk : cleanup : remove qdev field. >> virtio-net : show the VirtIONet structure. >> virtio-net : add the virtio-net device. >> virtio-net-pci : switch to the new API. >> virtio-net-s390 : switch to the new API. >> virtio-net : cleanup : use QOM cast. >> virtio-net : cleanup : init and exit function. >> virtio-net : cleanup : remove qdev field. >> virtio-scsi : show the VirtIOSCSI structure. >> virtio-scsi : don't use pointer for configuration. >> virtio-scsi : allocate cmd_vqs array separately. >> virtio-scsi : moving host_features from properties to transport >> properties. >> virtio-scsi : add the virtio-scsi device. >> virtio-scsi-pci : switch to new API. >> virtio-scsi-s390 : switch to the new API. >> virtio-scsi : cleanup : use QOM casts. >> virtio-scsi : cleanup : init and exit functions. >> virtio-scsi : cleanup : remove qdev field. >> virtio-balloon : show the VirtIOBalloon structure. >> virtio-balloon : add the virtio-balloon device. >> virtio-balloon-pci : switch to the new API. >> virtio-balloon : cleanup : init and exit function. >> virtio-balloon : cleanup : QOM casts. >> virtio-balloon : cleanup : remove qdev field. >> virtio-rng : show the VirtIORNG structure. >> virtio-rng : don't use pointer for configuration. >> virtio-rng : add virtio-rng device. >> virtio-rng-s390 : switch to the new API. >> virtio-rng-pci : switch to the new API. >> virtio-rng.c : cleanup : init and exit functions. >> virtio-rng.c : cleanup : remove qdev field. >> virtio-rng.c : cleanup : use QOM casts. >> virtio-serial : show structures. >> virtio-serial : add the virtio-serial device. >> virtio-serial-pci : switch to the new API. >> virtio-serial-s390 : switch to the new API. >> virtio-serial : cleanup : init and exit functions. >> virtio-serial : cleanup : use QOM casts. >> virtio-serial : cleanup : remove qdev field. >> virtio-9p : add the virtio-9p device. >> virtio-9p-pci : switch to the new API. >> virtio-9p : cleanup : init function. >> virtio-9p : cleanup : QOM casts. >> virtio : remove the function pointer. >> virtio-pci : cleanup : init, exit and reset functions. >> s390-virtio-bus : cleanup >> virtio : remove virtiobindings. >> virtio : cleanup : init and exit function. >> >> hw/9pfs/virtio-9p-device.c | 144 ++++++---- >> hw/9pfs/virtio-9p.c | 2 +- >> hw/9pfs/virtio-9p.h | 27 +- >> hw/Makefile.objs | 1 + >> hw/qdev-core.h | 2 + >> hw/qdev-monitor.c | 12 + >> hw/s390-virtio-bus.c | 221 +++++++++------ >> hw/s390-virtio-bus.h | 78 ++++- >> hw/vhost.c | 38 ++- >> hw/virtio-balloon.c | 111 ++++---- >> hw/virtio-balloon.h | 14 + >> hw/virtio-blk.c | 148 +++++----- >> hw/virtio-blk.h | 42 +++ >> hw/virtio-bus.c | 161 +++++++++++ >> hw/virtio-bus.h | 94 +++++++ >> hw/virtio-net.c | 270 +++++++++--------- >> hw/virtio-net.h | 58 ++++ >> hw/virtio-pci.c | 689 +++++++++++++++++++++++++-------------------- >> hw/virtio-pci.h | 131 ++++++++- >> hw/virtio-rng.c | 143 ++++++---- >> hw/virtio-rng.h | 33 +++ >> hw/virtio-scsi.c | 139 +++++---- >> hw/virtio-scsi.h | 31 +- >> hw/virtio-serial-bus.c | 199 +++++++------ >> hw/virtio-serial.h | 50 ++++ >> hw/virtio.c | 156 ++++++---- >> hw/virtio.h | 52 ++-- >> 27 files changed, 2018 insertions(+), 1028 deletions(-) >> create mode 100644 hw/virtio-bus.c >> create mode 100644 hw/virtio-bus.h >> >> -- >> 1.7.11.7