From: Andres Lagar-Cavilla <andres@lagarcavilla.org>
To: xen-devel@lists.xensource.com
Cc: andres@gridcentric.ca, tim@xen.org, adin@gridcentric.ca
Subject: [PATCH 1 of 4] Prevent low values of max_pages for domains doing sharing or paging
Date: Wed, 15 Feb 2012 22:57:04 -0500 [thread overview]
Message-ID: <11fd4e0a1e1a76ca3bc1.1329364624@xdev.gridcentric.ca> (raw)
In-Reply-To: <patchbomb.1329364623@xdev.gridcentric.ca>
xen/common/domctl.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
Apparently, setting d->max_pages to something lower than d->tot_pages is
used as a mechanism for controling a domain's footprint. It will result
in all new page allocations failing.
This is a really bad idea with paging or sharing, as regular guest memory
accesses may need to be satisfied by allocating new memory (either to
page in or to unshare).
Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org>
diff -r 62b1fe67b8d1 -r 11fd4e0a1e1a xen/common/domctl.c
--- a/xen/common/domctl.c
+++ b/xen/common/domctl.c
@@ -813,8 +813,14 @@ long do_domctl(XEN_GUEST_HANDLE(xen_domc
* NB. We removed a check that new_max >= current tot_pages; this means
* that the domain will now be allowed to "ratchet" down to new_max. In
* the meantime, while tot > max, all new allocations are disallowed.
+ *
+ * Except that this is not a great idea for domains doing sharing or
+ * paging, as they need to perform new allocations on the fly.
*/
- d->max_pages = new_max;
+ if ( (new_max > d->max_pages) ||
+ !((d->mem_event->paging.ring_page != NULL) ||
+ d->arch.hvm_domain.mem_sharing_enabled) )
+ d->max_pages = new_max;
ret = 0;
spin_unlock(&d->page_alloc_lock);
next prev parent reply other threads:[~2012-02-16 3:57 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-16 3:57 [PATCH 0 of 4] Handling of (some) low memory conditions Andres Lagar-Cavilla
2012-02-16 3:57 ` Andres Lagar-Cavilla [this message]
2012-02-16 9:16 ` [PATCH 1 of 4] Prevent low values of max_pages for domains doing sharing or paging Jan Beulich
2012-02-16 10:20 ` Tim Deegan
2012-02-16 14:45 ` Andres Lagar-Cavilla
2012-02-16 14:58 ` Tim Deegan
2012-02-16 15:32 ` Jan Beulich
2012-02-16 16:08 ` Tim Deegan
2012-02-16 16:44 ` Jan Beulich
2012-02-16 3:57 ` [PATCH 2 of 4] x86/mm: Allow to not sleep on mem event ring Andres Lagar-Cavilla
2012-02-16 16:11 ` Tim Deegan
2012-02-17 16:57 ` Andres Lagar-Cavilla
2012-02-16 3:57 ` [PATCH 3 of 4] Memory sharing: better handling of ENOMEM while unsharing Andres Lagar-Cavilla
2012-02-16 16:19 ` Tim Deegan
2012-02-17 17:01 ` Andres Lagar-Cavilla
2012-02-16 3:57 ` [PATCH 4 of 4] Global virq for low memory situations Andres Lagar-Cavilla
2012-02-16 9:31 ` [PATCH 0 of 4] Handling of (some) low memory conditions Jan Beulich
2012-02-16 14:40 ` Andres Lagar-Cavilla
2012-02-16 15:22 ` Jan Beulich
2012-02-16 15:34 ` Andres Lagar-Cavilla
2012-02-16 16:26 ` Jan Beulich
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=11fd4e0a1e1a76ca3bc1.1329364624@xdev.gridcentric.ca \
--to=andres@lagarcavilla.org \
--cc=adin@gridcentric.ca \
--cc=andres@gridcentric.ca \
--cc=tim@xen.org \
--cc=xen-devel@lists.xensource.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.