Am 15.09.2010 um 19:08 schrieb Andrea Arcangeli:

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

There is a pending patch which introduces qemu_madvise() and will eliminate the need for these #ifdefs, which was demanded by Blue. I'll cc you on v6.

Regards,

Andreas

Reply via email to