From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58374) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sr7yM-0000GS-PF for qemu-devel@nongnu.org; Tue, 17 Jul 2012 09:37:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Sr7yD-00054S-Ar for qemu-devel@nongnu.org; Tue, 17 Jul 2012 09:37:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55075) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sr7yD-00054G-3K for qemu-devel@nongnu.org; Tue, 17 Jul 2012 09:37:45 -0400 Message-ID: <50056AA1.9010004@redhat.com> Date: Tue, 17 Jul 2012 16:37:37 +0300 From: Avi Kivity MIME-Version: 1.0 References: <1342531805-29894-1-git-send-email-anthony.perard@citrix.com> <1342531805-29894-4-git-send-email-anthony.perard@citrix.com> In-Reply-To: <1342531805-29894-4-git-send-email-anthony.perard@citrix.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 3/4] exec, memory: Call to xen_modified_memory. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony PERARD Cc: Anthony Liguori , Luiz Capitulino , Stefano Stabellini , QEMU-devel , Xen Devel On 07/17/2012 04:30 PM, Anthony PERARD wrote: > This patch add some calls to xen_modified_memory to notify Xen about dirtybits > during migration. > > diff --git a/exec.c b/exec.c > index c9fa17d..9f7a4f7 100644 > --- a/exec.c > +++ b/exec.c > @@ -3438,6 +3438,7 @@ void cpu_physical_memory_rw(target_phys_addr_t addr, uint8_t *buf, > cpu_physical_memory_set_dirty_flags( > addr1, (0xff & ~CODE_DIRTY_FLAG)); > } > + xen_modified_memory(addr1, TARGET_PAGE_SIZE); > qemu_put_ram_ptr(ptr); > } > } else { This is pretty ugly. An alternative is to set up a periodic bitmap scan that looks at the qemu dirty bitmap and calls xen_modified_memory() for dirty page ranges, and clears the bitmap for the next pass. Is it workable? (is xen_modified_memory a hypercall, or does it maintain an in-memory structure?) -- error compiling committee.c: too many arguments to function