From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54575) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcYSB-00047U-W4 for qemu-devel@nongnu.org; Wed, 24 Aug 2016 09:42:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bcYS4-00037h-Rl for qemu-devel@nongnu.org; Wed, 24 Aug 2016 09:42:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60526) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bcYS4-00037c-MM for qemu-devel@nongnu.org; Wed, 24 Aug 2016 09:42:44 -0400 From: "Dr. David Alan Gilbert (git)" Date: Wed, 24 Aug 2016 14:42:32 +0100 Message-Id: <1472046153-22123-6-git-send-email-dgilbert@redhat.com> In-Reply-To: <1472046153-22123-1-git-send-email-dgilbert@redhat.com> References: <1472046153-22123-1-git-send-email-dgilbert@redhat.com> Subject: [Qemu-devel] [RFC 5/6] virtio/migration: Migrate balloon 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" Replace the load/save with a vmsd. Signed-off-by: Dr. David Alan Gilbert --- hw/virtio/virtio-balloon.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index 5af429a..7b0ad20 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -396,26 +396,14 @@ static void virtio_balloon_to_target(void *opaque, ram_addr_t target) trace_virtio_balloon_to_target(target, dev->num_pages); } -static void virtio_balloon_save_device(VirtIODevice *vdev, QEMUFile *f) -{ - VirtIOBalloon *s = VIRTIO_BALLOON(vdev); - - qemu_put_be32(f, s->num_pages); - qemu_put_be32(f, s->actual); -} - static int virtio_balloon_load(QEMUFile *f, void *opaque, size_t size) { return virtio_load(VIRTIO_DEVICE(opaque), f, 1); } -static int virtio_balloon_load_device(VirtIODevice *vdev, QEMUFile *f, - int version_id) +static int virtio_balloon_post_load_device(void *opaque, int version_id) { - VirtIOBalloon *s = VIRTIO_BALLOON(vdev); - - s->num_pages = qemu_get_be32(f); - s->actual = qemu_get_be32(f); + VirtIOBalloon *s = VIRTIO_BALLOON(opaque); if (balloon_stats_enabled(s)) { balloon_stats_change_timer(s, s->stats_poll_interval); @@ -423,6 +411,18 @@ static int virtio_balloon_load_device(VirtIODevice *vdev, QEMUFile *f, return 0; } +static const VMStateDescription vmstate_virtio_balloon_device = { + .name = "virtio-balloon-device", + .version_id = 1, + .minimum_version_id = 1, + .post_load = virtio_balloon_post_load_device, + .fields = (VMStateField[]) { + VMSTATE_UINT32(num_pages, VirtIOBalloon), + VMSTATE_UINT32(actual, VirtIOBalloon), + VMSTATE_END_OF_LIST() + }, +}; + static void virtio_balloon_device_realize(DeviceState *dev, Error **errp) { VirtIODevice *vdev = VIRTIO_DEVICE(dev); @@ -503,8 +503,7 @@ static void virtio_balloon_class_init(ObjectClass *klass, void *data) vdc->get_config = virtio_balloon_get_config; vdc->set_config = virtio_balloon_set_config; vdc->get_features = virtio_balloon_get_features; - vdc->save = virtio_balloon_save_device; - vdc->load = virtio_balloon_load_device; + vdc->vmsd = &vmstate_virtio_balloon_device; } static const TypeInfo virtio_balloon_info = { -- 2.7.4