From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56747) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmpTg-0003av-87 for qemu-devel@nongnu.org; Tue, 20 May 2014 15:13:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WmpTa-0000E5-4D for qemu-devel@nongnu.org; Tue, 20 May 2014 15:13:32 -0400 Received: from mx1.redhat.com ([209.132.183.28]:23413) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WmpTZ-0000E0-S7 for qemu-devel@nongnu.org; Tue, 20 May 2014 15:13:26 -0400 Date: Tue, 20 May 2014 15:13:22 -0400 From: Luiz Capitulino Message-ID: <20140520151322.41af6a09@redhat.com> In-Reply-To: <2d651cbdf1c629fef76704ec2d732d534bc98e35.1400481675.git.jtomko@redhat.com> References: <2d651cbdf1c629fef76704ec2d732d534bc98e35.1400481675.git.jtomko@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [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: =?UTF-8?B?SsOhbg==?= Tomko Cc: qemu-devel@nongnu.org, aliguori@amazon.com, mst@redhat.com On Mon, 19 May 2014 08:41:21 +0200 J=C3=A1n Tomko wrote: > If the guest hasn't updated the stats yet, instead of returning > an error, return '-1' for the stats and '0' as 'last-update'. >=20 > This lets applications ignore this without parsing the error message. >=20 > Related libvirt patch and discussion: > https://www.redhat.com/archives/libvir-list/2014-May/msg00460.html >=20 > Signed-off-by: J=C3=A1n Tomko > --- > hw/virtio/virtio-balloon.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) >=20 > 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 Looks good to me, but I have some comments: - I'm assuming you tested this against libivrt, right? It's good to add a comment in the changelog mentioning that - You have to update the documentation in docs/virtio-balloon-stats.txt as well. There are two sections to update, the one describing the last-up= date key (where you should mention what it means when last-update=3D0) and the section saying that polling can be enabled even when the guest doesn't ha= ve stats support (I'd mention that last-update=3D0 for that case) - Please, rebase on top of latest master