From: Andrea Arcangeli <aarcange@redhat.com>
To: "Andreas Färber" <andreas.faerber@web.de>
Cc: Blue Swirl <blauwirbel@gmail.com>,
Anthony Liguori <aliguori@us.ibm.com>,
"qemu-devel@nongnu.org Developers" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory
Date: Wed, 5 Jan 2011 16:10:12 +0100 [thread overview]
Message-ID: <20110105151012.GC15823@random.random> (raw)
In-Reply-To: <A3B70771-9314-4F76-AEBA-443D609E0598@web.de>
The bug is still there so I rediffed the old patch against current
code.
On a related topic: could somebody give me advice on how to implement
a command line (command line seems enough, the other option would be
monitor command) to make the MADV_MERGEABLE conditional? I got KSM on
THP working fine but KSM may decrease performance by increasing the
number of copy on write and by splitting hugepages, so we'd like to be
able to turn off KSM on a per-VM basis (not on the whole host, which
of course we already can by setting /sys/kernel/mm/ksm/run to 0) so
that high perf VMs will keep running at maximum speed with KSM off but
others may still benefit from KSM. For that I need to make the below
MADV_MERGEABLE madvise conditional to something and the code itself
will be trivial, we've just to converge on a command line option
(hopefully quickly ;).
======
Subject: avoid allocation failures during fork/exec for migrate/hotplug
From: Andrea Arcangeli <aarcange@redhat.com>
Mark all guest physical memory as MADV_DONTFORK to avoid false positive
allocation failures during fork in migrate/netdev hotplug.
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
---
diff --git a/exec.c b/exec.c
index db9ff55..9e2aa12 100644
--- a/exec.c
+++ b/exec.c
@@ -2851,6 +2851,9 @@ ram_addr_t qemu_ram_alloc_from_ptr(DeviceState *dev, const char *name,
new_block->host = qemu_vmalloc(size);
#endif
qemu_madvise(new_block->host, size, QEMU_MADV_MERGEABLE);
+
+ /* no allocation failures during fork/exec for migrate/hotplug */
+ qemu_madvise(new_block->host, size, QEMU_MADV_DONTFORK);
}
}
next prev parent reply other threads:[~2011-01-05 15:10 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-15 17:08 [Qemu-devel] [PATCH] add MADV_DONTFORK to guest physical memory Andrea Arcangeli
2010-09-15 17:34 ` Alexander Graf
2010-09-15 17:37 ` Andreas Färber
2011-01-05 15:10 ` Andrea Arcangeli [this message]
2011-01-05 18:02 ` Michael Roth
2011-01-05 19:44 ` Alexander Graf
2011-01-05 19:54 ` Andrea Arcangeli
2011-01-05 20:00 ` Alexander Graf
2011-01-05 20:12 ` Anthony Liguori
2011-01-05 20:15 ` Andrea Arcangeli
2011-01-05 20:26 ` Michael Roth
2011-01-05 20:35 ` Andrea Arcangeli
2011-01-05 21:27 ` Michael Roth
2011-01-06 17:49 ` Andrea Arcangeli
2011-01-06 20:49 ` Michael Roth
2011-01-05 20:10 ` Anthony Liguori
2010-09-15 21:03 ` [Qemu-devel] " Michael S. Tsirkin
2010-09-16 6:51 ` Gleb Natapov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110105151012.GC15823@random.random \
--to=aarcange@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=andreas.faerber@web.de \
--cc=blauwirbel@gmail.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).