On Mon, Aug 01, 2016 at 11:59:31PM +0000, Li, Liang Z wrote: > > On Wed, Jul 06, 2016 at 12:49:06PM +0000, Li, Liang Z wrote: > > > > > > > After live migration, 'guest-stats' can't get the expected > > > > > > > memory status in the guest. This issue is caused by commit > > 4eae2a657d. > > > > > > > The value of 's->stats_vq_elem' will be NULL after live > > > > > > > migration, and the check in the function > > > > > > > 'balloon_stats_poll_cb()' will prevent the 'virtio_notify()' > > > > > > > from executing. So guest will not update the memory status. > > > > > > > > > > > > > > Commit 4eae2a657d is doing the right thing, but 's->stats_vq_elem' > > > > > > > should be treated as part of balloon device state and migrated > > > > > > > to destination if it's not NULL to make everything works well. > > > > > > > > > > > > > > Signed-off-by: Liang Li <liang.z...@intel.com> > > > > > > > Suggested-by: Paolo Bonzini <pbonz...@redhat.com> > > > > > > > Cc: Michael S. Tsirkin <m...@redhat.com> > > > > > > > Cc: Ladi Prosek <lpro...@redhat.com> > > > > > > > Cc: Paolo Bonzini <pbonz...@redhat.com> > > > > > > > > > > > > I agree there's an issue but we don't change versions anymore. > > > > > > Breaking migrations for everyone is also not nice. > > > > > > > > > > > > How about queueing virtio_balloon_receive_stats so it will get > > > > > > invoked when vm starts? > > > > > > > > > > > > > > > > Could you give more explanation about how it works? I can't catch > > > > > you. > > > > > > > > > > Thanks! > > > > > Liang > > > > > > > > virtqueue_discard before migration > > > > > > > > virtio_balloon_receive_stats after migration > > > > > > > > > > Sorry, I still can't catch you. Maybe it's easier for you to submit a > > > patch than writing a lot a words to make me understand your idea. > > > > I'm rather busy now. I might look into it towards end of the month. > > > > > I just don't understand why not to use the version to make things > > > easier, is that not the original intent of version id? > > > > This was the original idea but we stopped using version ids since they have > > many shortcomings. > > > > > If we want to extend the device and more states are needed, the idea > > > you suggest can be used as a common solution? > > > > > > Thanks! > > > Liang > > > > The idea is to try to avoid adding more state. that's not always possible > > but in > > this case element was seen but not consumed yet, so it should be possible > > for destination to simply get it from the VQ again. > > > > > > -- > > > > MST > > Hi Michel, > > Do you have time for this issue recently? > > Thanks! > Liang
Sorry, doesn't look like I will. Idea is to make sure balloon_stats_poll_cb runs on source. This will set stats_vq_elem to NULL. -- MST