[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] Fix calculation of number of bits in the migrat
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH] Fix calculation of number of bits in the migration bitmap |
Date: |
Wed, 31 Oct 2012 12:25:55 +0100 |
On 31 October 2012 12:19, Orit Wasserman <address@hidden> 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 <address@hidden>
> ---
> 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);
?
-- PMM