[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.
-----Original Message-----
From: Jia Rao [mailto:rickenrao@xxxxxxxxx]
Sent: Monday, November 02, 2009 2:38 PM
To: Dan Magenheimer
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel] Re: how to change the memory size of a VM

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".
-----Original Message-----
From: Jia Rao [mailto:rickenrao@xxxxxxxxx]
Sent: Monday, November 02, 2009 1:54 PM
To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] Re: how to change the memory size of a VM



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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.