From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:54002) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SsFR5-0001pq-F7 for qemu-devel@nongnu.org; Fri, 20 Jul 2012 11:48:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SsFR1-00037O-2F for qemu-devel@nongnu.org; Fri, 20 Jul 2012 11:48:11 -0400 Received: from smtp.ctxuk.citrix.com ([62.200.22.115]:35392 helo=SMTP.EU.CITRIX.COM) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SsFR0-00036r-T0 for qemu-devel@nongnu.org; Fri, 20 Jul 2012 11:48:07 -0400 Date: Fri, 20 Jul 2012 16:47:16 +0100 From: Stefano Stabellini In-Reply-To: <5009670F.1000209@citrix.com> Message-ID: References: <1342531805-29894-1-git-send-email-anthony.perard@citrix.com> <1342531805-29894-5-git-send-email-anthony.perard@citrix.com> <5009670F.1000209@citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Subject: Re: [Qemu-devel] [PATCH 4/4] xen: Always set the vram dirty during migration. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony PERARD Cc: Anthony Liguori , Stefano Stabellini , QEMU-devel , Luiz Capitulino , Avi Kivity , Xen Devel On Fri, 20 Jul 2012, Anthony PERARD wrote: > On 17/07/12 19:30, Stefano Stabellini wrote: > > On Tue, 17 Jul 2012, Stefano Stabellini wrote: > >> On Tue, 17 Jul 2012, Anthony PERARD wrote: > >>> Because the call to track the dirty bit in the video ram during migration won't > >>> work (it returns -1), we set dirtybit on the all video ram. > >>> > >>> Signed-off-by: Anthony PERARD > >>> --- > >>> xen-all.c | 5 +++++ > >>> 1 files changed, 5 insertions(+), 0 deletions(-) > >>> > >>> diff --git a/xen-all.c b/xen-all.c > >>> index 498883b..00bdb50 100644 > >>> --- a/xen-all.c > >>> +++ b/xen-all.c > >>> @@ -502,6 +502,11 @@ static void xen_sync_dirty_bitmap(XenIOState *state, > >>> return; > >>> } > >>> > >>> + if (unlikely(xen_in_migration)) { > >>> + /* track_dirty_vram does not work during migration */ > >>> + memory_region_set_dirty(framebuffer, 0, size); > >>> + return; > >>> + } > >>> rc = xc_hvm_track_dirty_vram(xen_xc, xen_domid, > >>> start_addr >> TARGET_PAGE_BITS, npages, > >>> bitmap); > >> > >> Why are you setting the entire framebuffer dirty? > >> We should set dirty only the actualy region that is supposed to be > >> dirty. > > I set the dirty bit on the all framebuffer because the track dirty call > fail, so I don't which bits are dirty. This one is for QEMU to know > which part of the screen need to be updated. In that case it would be better to set the entire bitmap to 0xff in case xc_hvm_track_dirty_vram fails, right? So that we don't need to special case live migration.