qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]