Message ID | 1546844466-38079-3-git-send-email-wei.w.wang@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | virtio-balloon: tweak config_changed | expand |
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@intel.com> > Reviewed-by: Cornelia Huck <cohuck@redhat.com> > Reviewed-by: Halil Pasic <pasic@linux.ibm.com> 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
On 01/15/2019 09:00 AM, Michael S. Tsirkin wrote: > 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@intel.com> >> Reviewed-by: Cornelia Huck <cohuck@redhat.com> >> Reviewed-by: Halil Pasic <pasic@linux.ibm.com> > 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. > No problem, it's not urgent to me. Best, Wei
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);