qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] migration: Fix madvise breakage if host and gue


From: David Gibson
Subject: Re: [Qemu-devel] [PATCH] migration: Fix madvise breakage if host and guest have different page sizes
Date: Wed, 21 Nov 2012 16:42:35 +1100
User-agent: Mutt/1.5.21 (2010-09-15)

On Wed, Nov 21, 2012 at 03:59:25PM +1100, David Gibson wrote:
> madvise(DONTNEED) will throw away the contents of the whole page at the
> given address, even if the given length is less than the page size.  One
> can argue about whether that's the correct behaviour, but that's what it's
> done for a long time in Linux at least.
> 
> That means that the madvise() in ram_load(), on a setup where
> TARGET_PAGE_SIZE is smaller than the host page size, can throw away data
> in guest pages adjacent to the one it's actually processing right now,
> leading to guest memory corruption on an incoming migration.
> 
> This patch therefore, disables the madvise() if the host page size is
> larger than TARGET_PAGE_SIZE.  This means we don't get the benefits of that
> madvise() in this case, but a more complete fix is more difficult to
> accomplish.  This at least fixes the guest memory corruption.
> 
> Signed-off-by: David Gibson <address@hidden>

Sorry, forgot to add:

Reported-by: Alexey Kardashevskiy <address@hidden>

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson



reply via email to

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