From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58001) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTX22-0001DP-DG for qemu-devel@nongnu.org; Wed, 31 Oct 2012 08:04:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TTX1w-00015f-Jo for qemu-devel@nongnu.org; Wed, 31 Oct 2012 08:04:26 -0400 Received: from mx1.redhat.com ([209.132.183.28]:3071) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TTX1w-00015K-Bi for qemu-devel@nongnu.org; Wed, 31 Oct 2012 08:04:20 -0400 Message-ID: <509113D3.9040404@redhat.com> Date: Wed, 31 Oct 2012 14:04:35 +0200 From: Orit Wasserman MIME-Version: 1.0 References: <1351682381-8793-1-git-send-email-owasserm@redhat.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] Fix calculation of number of bits in the migration bitmap List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell Cc: pbonzini@redhat.com, aliguori@us.ibm.com, quintela@redhat.com, qemu-devel@nongnu.org, avi@redhat.com On 10/31/2012 01:25 PM, Peter Maydell wrote: > On 31 October 2012 12:19, Orit Wasserman wrote: >> The number of bits is off by one, for example if last_ram_offset >> is 0x1000 (the guest has one page) we get 0 bits instead of 1. >> >> Signed-off-by: Orit Wasserman >> --- >> arch_init.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch_init.c b/arch_init.c >> index b75a4c5..a80c3c8 100644 >> --- a/arch_init.c >> +++ b/arch_init.c >> @@ -565,7 +565,7 @@ static void reset_ram_globals(void) >> static int ram_save_setup(QEMUFile *f, void *opaque) >> { >> RAMBlock *block; >> - int64_t ram_pages = last_ram_offset() >> TARGET_PAGE_BITS; >> + int64_t ram_pages = (last_ram_offset() >> TARGET_PAGE_BITS) + 1; > > This will give you an extra bit if the last_ram_offset() > is an exact multiple of the page size, though. Try > int64_t ram_pages = DIV_ROUND_UP(last_ram_offset(), TARGET_PAGE_SIZE); Good idea ... > ? > > -- PMM >