[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [Xen-devel] Re: how to change the memory size of a VM
If by
linux-2.6.18.8 you mean the default Xen-ified kernel from xen.org, yes, the
balloon driver should be built by default. If you mean a kernel.org
2.6.18.8 kernel running as a HVM (fully virtualized), no, the balloon driver
will not be there by default.
If you
can type to a command line in your guest, if "cat /proc/xen/balloon" works, the
balloon driver is enabled in that guest.
Thanks for the reply, I
am using xen 3.3 and linux-2.6.18.8. I did not configure the guest to use
balloon driver. Is the balloon driver enabled by default?
On Mon, Nov 2, 2009 at 4:31 PM, Dan Magenheimer <dan.magenheimer@xxxxxxxxxx>
wrote:
There must be a balloon
driver in the guest for memory to be dynamically removed from the
guest. Then when Xen tells the balloon driver to take
memory, the guest decides which pages of memory to give away (thinking
that it is giving the memory to an especially hungry device driver).
Google for "balloon driver" for more info on how this works on Xen, VMware,
other VMMs.
If you are interested
in much more detail on this, google for "self-ballooning Xen" and
"transcendent memory".
I
am looking into a problem that when the memory size of a VM is changed
which part of the original memory is taken away by xen. For example,
if I change the memory size of a VM from 2048MB --> 1024MB, how can I
tell which are the 1024M byte that will be taken away (I do not want the
xen to take the memory spaces that are caching useful data).
The
command for memory size reconfiguration is "xm mem-set", so I looked the
source code of xm. It turned out to be the following python
calls:
tools/python/xen/xm/main.py: setMemoryTarget(dom,
mem_target)
tools/python/xen/xend/XendDomainInfo.py:
setMemoryTarget:
self._safe_set_memory('memory_dynamic_min', target *
MiB)
self._safe_set_memory('memory_dynamic_max', target *
MiB)
xen.xend.XendDomain.instance().managed_config_save(self)
tools/python/xen/xend/XendDomainInfo.py:
_safe_set_memory
self.info[‘memory_dynamic_min’] =
target
self.info[‘memory_dynamic_max’] = target It seems
that to change the memory size of a VM, you just need to save the new size
in somewhere, xenstore? How would the new size take effect? the memory
mapping of the VM must be modified somewhere. Look forward to
replies, sorry if the question is stupid, a newbie here ^_^ Thanks in
advance
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|