From: Michal Novotny <minovotn@redhat.com>
To: "'xen-devel@lists.xensource.com'" <xen-devel@lists.xensource.com>
Subject: [PATCH] Disallow setting maxmem to higher value than total physical memory size
Date: Wed, 01 Sep 2010 14:31:46 +0200 [thread overview]
Message-ID: <4C7E47B2.9010805@redhat.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1637 bytes --]
Hi,
this is the patch to disallow changing the maxmem value to higher value
than total physical memory size since without this patch I was able to
set dom0 maxmem to higher (invalid) value which is not correct. The
check for total memory size using the xc.physinfo()['total_mem'] has
been implemented in this patch and also the check for negative or zero
value in setMemoryMaximum() has been added. When user enters an invalid
value (no matter whether negative/zero or higher than total physical
memory size) an error is returned saying that the memory size is invalid
since no domain (no matter whether dom0 or domU) can have memory higher
than maxmem and this prevents maxmem value to be higher than total
physical memory installed on dom0. Also, on dom0/domU start the domain
maxmem is being checked against whether it doesn't exceed the total
physical memory configuration and if it does the value is being reduced
the the physical memory size to disallow possibility to set to some
higher value.
You can check the patch by `xm list -l | grep maxmem` command which now
returns the dom0 physical size on dom0 boot up and when you try to set
maximum memory of both dom0 and domU you can't set this to higher value
than dom0 total physical memory size. Since there's a sanity check on
setting up new memory on domain you'll get "Error: memory_dynamic_max
must be less than or equal to memory_static_max" when trying to set to
higher value than domain's maxmem.
Michal
Signed-off-by: Michal Novotny <minovotn@redhat.com>
--
Michal Novotny<minovotn@redhat.com>, RHCE
Virtualization Team (xen userspace), Red Hat
[-- Attachment #2: xen-disallow-setting-max-mem-higher-than-total-phys-mem.patch --]
[-- Type: text/x-patch, Size: 1230 bytes --]
diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py
index 4360ce2..b38b418 100644
--- a/tools/python/xen/xend/XendDomainInfo.py
+++ b/tools/python/xen/xend/XendDomainInfo.py
@@ -152,6 +152,11 @@ def recreate(info, priv):
assert not info['dying']
+ # Validate domain maxmem value not to be higher than dom0 physical memory
+ total_mem = int(xc.physinfo()['total_memory'])
+ if info['maxmem_kb'] > total_mem:
+ info['maxmem_kb'] = total_mem
+
xeninfo = XendConfig.XendConfig(dominfo = info)
xeninfo['is_control_domain'] = priv
xeninfo['is_a_template'] = False
@@ -1490,6 +1495,13 @@ class XendDomainInfo:
"""Set the maximum memory limit of this domain
@param limit: In MiB.
"""
+ # Get total memory and convert to MiB
+ total_mem = int(xc.physinfo()['total_memory'] / 1024)
+
+ if limit <= 0 or limit > total_mem:
+ raise XendError('Invalid memory size, only positive values '
+ 'up to %s MiB are valid' % total_mem)
+
log.debug("Setting memory maximum of domain %s (%s) to %d MiB.",
self.info['name_label'], str(self.domid), limit)
[-- Attachment #3: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
next reply other threads:[~2010-09-01 12:31 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-01 12:31 Michal Novotny [this message]
2010-09-01 12:44 ` [PATCH] Disallow setting maxmem to higher value than total physical memory size Ian Campbell
2010-09-01 13:01 ` Michal Novotny
2010-09-01 13:37 ` Ian Campbell
2010-09-01 14:18 ` Michal Novotny
2010-09-01 14:21 ` Michal Novotny
2010-09-01 14:26 ` Jan Beulich
2010-09-01 14:50 ` Michal Novotny
2010-09-01 15:00 ` Jan Beulich
2010-09-01 15:10 ` Michal Novotny
2010-09-01 15:14 ` Jan Beulich
2010-09-01 15:20 ` Ian Campbell
2010-09-01 15:34 ` Michal Novotny
2010-09-01 16:53 ` Jeremy Fitzhardinge
2010-09-01 17:56 ` Ian Campbell
2010-09-01 18:15 ` Jeremy Fitzhardinge
2010-09-01 18:53 ` Ian Campbell
2010-09-01 21:10 ` Jeremy Fitzhardinge
2010-09-02 5:43 ` Ian Campbell
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=4C7E47B2.9010805@redhat.com \
--to=minovotn@redhat.com \
--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.