From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NFnxX-0004IB-GA for qemu-devel@nongnu.org; Wed, 02 Dec 2009 07:05:27 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NFnxS-0004Gs-6H for qemu-devel@nongnu.org; Wed, 02 Dec 2009 07:05:26 -0500 Received: from [199.232.76.173] (port=42902 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NFnxR-0004Gp-Tm for qemu-devel@nongnu.org; Wed, 02 Dec 2009 07:05:21 -0500 Received: from mx1.redhat.com ([209.132.183.28]:51092) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NFnxR-0004Aj-D0 for qemu-devel@nongnu.org; Wed, 02 Dec 2009 07:05:21 -0500 Received: from int-mx03.intmail.prod.int.phx2.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id nB2C5KlB018934 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 2 Dec 2009 07:05:20 -0500 From: Juan Quintela Date: Wed, 2 Dec 2009 13:03:57 +0100 Message-Id: Subject: [Qemu-devel] [PATCH 00/41] virtio: port to vmstate List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mst@redhat.com Hi this patch series run on top of my previous vmstate cleanups and fixes. It ports virtio* and msix at the same time (msix and virtio-pci are too entangled to do it separately). It contains: - Use DO_UPCAST instead of local function for doing the casts - virtio: add a type field (pci and syborg by now). - strange pci bindings for virtio are gone (i.e. config and queues are handled explicitely for pci, the ones that used them). - virtio-net: make vlans to use uint8_t instead of uint32_t array, that makes it work through big_endian/low endian migrations. This needs testing from people that use the feature. - virtio-blk: It has no hope for migration between 32/64bits hosts or big-endian/little-endian. It sends a structure with memcpy that contains: - target_phys_addr_t (32 or 64 bits depending on host/guest) - void * (again it depends on host) - size_t (it depends on host again) I didn't changed it, but we should. - virtio-blk: change the list of requests to QLIST. I also needed a QLIST_COPY_HEAD to not have to break the abstraction, created it. Later, Juan. Juan Quintela (40): virtio: Teach virtio-balloon about DO_UPCAST virtio: Teach virtio-blk about DO_UPCAST virtio: Teach virtio-console about DO_UPCAST virtio: Teach virtio-net about DO_UPCAST virtio-console: Remove useless casts virtio: Use DO_UPCAST instead of a cast virtio-pci: Remove duplicate test msix: Store sizes that we send/receive msix: port to vmstate virtio: Introduce type field to distingish between PCI and Syborg virtio-pci: port pci config to vmstate msix: msix_load/save are not needed anymore virtio: remove save/load_config for virtio virtio: remove save/load_queue for virtio virtio: Add num_pci_queues field virtio: split virtio_post_load() from virtio_load() virtio: change config_len type to int32_t virtio: use the right types for VirtQueue elements virtio: abstract test for save/load values virtio: port to vmstate virtio-net: change tx_timer_active to uint32_t virtio-net: change mergeable_rx_bufs to uint32_t virtio-net: use type checking version of qemu_put/get-* virtio-net: MAC_TABLE_ENTRIES has never been bigger virtio-net: we know vlans size at compile time, make it static virtio-net: abstract vlans operations virtio-net: make vlan operations on uint8_t, not uint32_t virtio-net: in_use and first_multi only handle unsigned values virtio-net: use save/load type chek functions for has_vent_hdr virtio-net: we know macs size at compile time, make it static virtio-net: split virtio_net_post_load virtio-net: port to vmstate virtio-console: port to vmstate virtio-balloon: port to vmstate virtio-blk: change rq type to VirtIOBlockReq QLIST: Introduce QLIST_COPY_HEAD virtio-blk: use QLIST for the list of requests virtio-blk: add VirtIOBlokReqHead type virtio-blk: port to vmstate virtio: virtio_save/load are not used anymore Michael S. Tsirkin (1): qemu/pci: document msix_entries_nr field hw/hw.h | 10 +++ hw/msix.c | 37 ++++++--- hw/msix.h | 3 +- hw/pci.h | 6 +- hw/syborg_virtio.c | 1 + hw/virtio-balloon.c | 53 +++++--------- hw/virtio-blk.c | 101 +++++++++++++++---------- hw/virtio-console.c | 43 ++++------- hw/virtio-net.c | 207 +++++++++++++++++++++++++-------------------------- hw/virtio-pci.c | 80 ++++++++++--------- hw/virtio.c | 138 ++++++++++++++++++++++------------ hw/virtio.h | 24 ++++-- qemu-queue.h | 4 + 13 files changed, 390 insertions(+), 317 deletions(-)