On Wed, Sep 15, 2010 at 07:08:24PM +0200, Andrea Arcangeli wrote: > From: Andrea Arcangeli <aarca...@redhat.com> > > All allocated guest physical memory shall be marked MADV_DONTFORK, otherwise > fork will fail because of accounting issues preventing migration or netdev_add > when the guest allocated more than half of host physical memory. > > Signed-off-by: Andrea Arcangeli <aarca...@redhat.com> > --- > > diff --git a/exec.c b/exec.c > index 380dab5..e2bdf19 100644 > --- a/exec.c > +++ b/exec.c > @@ -2861,6 +2861,9 @@ ram_addr_t qemu_ram_alloc_from_ptr(DeviceState *dev, > const char *name, > #ifdef MADV_MERGEABLE > madvise(new_block->host, size, MADV_MERGEABLE); > #endif > +#ifdef MADV_DONTFORK > + madvise(new_block->host, size, MADV_DONTFORK); > +#endif > } > }
Is this always a number of full host pages? If not, we'd get trouble when trying to call helpers. -- MST