From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54456) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcYRz-000409-BF for qemu-devel@nongnu.org; Wed, 24 Aug 2016 09:42:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bcYRx-00033x-79 for qemu-devel@nongnu.org; Wed, 24 Aug 2016 09:42:38 -0400 Received: from mx1.redhat.com ([209.132.183.28]:45486) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcYRx-00033p-14 for qemu-devel@nongnu.org; Wed, 24 Aug 2016 09:42:37 -0400 From: "Dr. David Alan Gilbert (git)" Date: Wed, 24 Aug 2016 14:42:27 +0100 Message-Id: <1472046153-22123-1-git-send-email-dgilbert@redhat.com> Subject: [Qemu-devel] [RFC 0/6] converting some of virtio to VMState List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, mst@redhat.com, amit.shah@redhat.com, quintela@redhat.com Cc: duanj@linux.vnet.ibm.com, cornelia.huck@de.ibm.com From: "Dr. David Alan Gilbert" Hi, This series converts two parts of virtio to VMState - the device load/save for virtio-balloon and virtio-net. It's only been smoke tested (which it passes); but if anyone has a good suggestion for testing virtio-net migration I'd be greatful. The first couple of patches are just general error reporting improvements for vmstate; and could go in straight away. The 3rd adds a new vmstate macro for skipping chunks of input data The 4th wires in a call to vmstate_{load|save}_state in virtio_{load|save} calling the vmsd on virtio device class; this is instead of the current ->load/->save methods. The idea is that eventually I'll be able to kill off the ->load/->save. Also my intention is to add the recursion into vdc->vmsd into the main vmstate_virtio vmsd via some new macro I've not figured out yet. The meat is in the 5th and 6th patches that do balloon and virtio-net. My plan is to attack virtio_blk and virtio_serial_bus next; both of which have loops walking along lists (in subtly different ways); I intend to see how Jianjun Duan's loop migration code would fit with those and try and come up with something general that does at least all 3 cases. Dave Dr. David Alan Gilbert (6): migration: report an error giving the failed field migration: Report values for comparisons migration: Add VMSTATE_UNUSED_VARRAY_UINT32 virtio/migration: Add VMStateDescription to VirtioDeviceClass virtio/migration: Migrate balloon to VMState virtio/migration: Migrate virtio-net to VMState hw/net/virtio-net.c | 256 ++++++++++++++++++++++++----------------- hw/virtio/virtio-balloon.c | 31 +++-- hw/virtio/virtio.c | 11 ++ include/hw/virtio/virtio-net.h | 10 +- include/hw/virtio/virtio.h | 2 + include/migration/vmstate.h | 11 ++ migration/vmstate.c | 10 ++ 7 files changed, 206 insertions(+), 125 deletions(-) -- 2.7.4