On 25 July 2013 11:11, Andrea Arcangeli <aarca...@redhat.com> wrote: > diff --git a/exec.c b/exec.c > index c99a883..d3bb58d 100644 > --- a/exec.c > +++ b/exec.c > @@ -1162,6 +1162,7 @@ ram_addr_t qemu_ram_alloc_from_ptr(ram_addr_t size, > void *host, > > qemu_ram_setup_dump(new_block->host, size); > qemu_madvise(new_block->host, size, QEMU_MADV_HUGEPAGE); > + qemu_madvise(new_block->host, size, QEMU_MADV_DONTFORK); > > if (kvm_enabled()) > kvm_setup_guest_memory(new_block->host, size); >
kvm_setup_guest_memory() already calls qemu_madvise(start, size, QEMU_MADV_DONTFORK) so why do we need to do it here as well? If we should be doing it in all cases presumably the right fix is to move the if (!kvm_has_sync_mmu()) check in kvm_setup_guest_memory() from "do we call madvise" to "do we fail with an error if it failed". thanks -- PMM