From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:48558) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SsDvc-0006Co-R3 for qemu-devel@nongnu.org; Fri, 20 Jul 2012 10:11:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SsDvV-0008Gm-TT for qemu-devel@nongnu.org; Fri, 20 Jul 2012 10:11:36 -0400 Received: from smtp.citrix.com ([66.165.176.89]:29862) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SsDvV-0008GX-OT for qemu-devel@nongnu.org; Fri, 20 Jul 2012 10:11:29 -0400 Message-ID: <5009670F.1000209@citrix.com> Date: Fri, 20 Jul 2012 15:11:27 +0100 From: Anthony PERARD MIME-Version: 1.0 References: <1342531805-29894-1-git-send-email-anthony.perard@citrix.com> <1342531805-29894-5-git-send-email-anthony.perard@citrix.com> In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit 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: Stefano Stabellini Cc: Anthony Liguori , Luiz Capitulino , Xen Devel , QEMU-devel , Avi Kivity 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. > Also memory_region_set_dirty calls cpu_physical_memory_set_dirty_range, > in which you didn't add a call to xen_modified_memory. -- Anthony PERARD