Re: [PATCH v3 2/3] virtio-balloon: improve update_balloon_size_func

From: Michael S. Tsirkin
Date: Mon Jan 14 2019 - 20:00:32 EST


On Mon, Jan 07, 2019 at 03:01:05PM +0800, Wei Wang wrote:
> There is no need to update the balloon actual register when there is no
> ballooning request. This patch avoids update_balloon_size when diff is 0.
>
> Signed-off-by: Wei Wang <wei.w.wang@xxxxxxxxx>
> Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>
> Reviewed-by: Halil Pasic <pasic@xxxxxxxxxxxxx>

It sounds reasonable but it does have a side effect of
not writing into actual anymore.

I am not sure actual never can get out of sync as a result.

So better deferred, pls send this in the next merge window.




> ---
> drivers/virtio/virtio_balloon.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
> index fb12fe2..e33dc8e 100644
> --- a/drivers/virtio/virtio_balloon.c
> +++ b/drivers/virtio/virtio_balloon.c
> @@ -457,9 +457,12 @@ static void update_balloon_size_func(struct work_struct *work)
> update_balloon_size_work);
> diff = towards_target(vb);
>
> + if (!diff)
> + return;
> +
> if (diff > 0)
> diff -= fill_balloon(vb, diff);
> - else if (diff < 0)
> + else
> diff += leak_balloon(vb, -diff);
> update_balloon_size(vb);
>
> --
> 2.7.4