From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42938) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmHHv-000277-Ki for qemu-devel@nongnu.org; Mon, 19 May 2014 02:43:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WmHHp-00078D-Gy for qemu-devel@nongnu.org; Mon, 19 May 2014 02:43:07 -0400 Received: from mx1.redhat.com ([209.132.183.28]:1636) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmHHp-000782-9S for qemu-devel@nongnu.org; Mon, 19 May 2014 02:43:01 -0400 From: =?UTF-8?q?J=C3=A1n=20Tomko?= Date: Mon, 19 May 2014 08:41:21 +0200 Message-Id: <2d651cbdf1c629fef76704ec2d732d534bc98e35.1400481675.git.jtomko@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH] virtio-balloon: return empty data when no stats are available List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mst@redhat.com, aliguori@amazon.com, lcapitulino@redhat.com If the guest hasn't updated the stats yet, instead of returning an error, return '-1' for the stats and '0' as 'last-update'. This lets applications ignore this without parsing the error message. Related libvirt patch and discussion: https://www.redhat.com/archives/libvir-list/2014-May/msg00460.html Signed-off-by: J=C3=A1n Tomko --- hw/virtio/virtio-balloon.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index 971a921..6661c53 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -111,11 +111,6 @@ static void balloon_stats_get_all(Object *obj, struc= t Visitor *v, VirtIOBalloon *s =3D opaque; int i; =20 - if (!s->stats_last_update) { - error_setg(errp, "guest hasn't updated any stats yet"); - return; - } - visit_start_struct(v, NULL, "guest-stats", name, 0, errp); visit_type_int(v, &s->stats_last_update, "last-update", errp); =20 @@ -361,6 +356,8 @@ static void virtio_balloon_device_realize(DeviceState= *dev, Error **errp) s->dvq =3D virtio_add_queue(vdev, 128, virtio_balloon_handle_output)= ; s->svq =3D virtio_add_queue(vdev, 128, virtio_balloon_receive_stats)= ; =20 + reset_stats(s); + register_savevm(dev, "virtio-balloon", -1, 1, virtio_balloon_save, virtio_balloon_load, s); =20 --=20 1.8.3.2