From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:46589) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUNJL-0006Xn-2y for qemu-devel@nongnu.org; Mon, 01 Aug 2016 20:11:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bUNJH-0001ZZ-Pq for qemu-devel@nongnu.org; Mon, 01 Aug 2016 20:11:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52068) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bUNJH-0001ZS-Ha for qemu-devel@nongnu.org; Mon, 01 Aug 2016 20:11:51 -0400 Date: Tue, 2 Aug 2016 03:11:47 +0300 From: "Michael S. Tsirkin" Message-ID: <20160802030708-mutt-send-email-mst@kernel.org> References: <1467772593-29703-1-git-send-email-liang.z.li@intel.com> <20160706111832-mutt-send-email-mst@redhat.com> <20160706132529-mutt-send-email-mst@redhat.com> <20160706163656-mutt-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [Qemu-devel] [PATCH v2] balloon: Fix failure of updating guest memory status List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Li, Liang Z" Cc: "qemu-devel@nongnu.org" , Ladi Prosek , Paolo Bonzini , "dgilbert@redhat.com" 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 > > > > > > > Suggested-by: Paolo Bonzini > > > > > > > Cc: Michael S. Tsirkin > > > > > > > Cc: Ladi Prosek > > > > > > > Cc: Paolo Bonzini > > > > > > > > > > > > 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