[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] a ton of kernel issues



On 14.12.2011 02:30, Ian Campbell wrote:
On Tue, 2011-12-13 at 20:59 +0000, George Shuklin wrote:
On 13.12.2011 17:37, Ian Campbell wrote:
This should work if memory hotplug is enabled.

It is also supported without memory hotplug but this requires that the
tools supply a suitable memory map that covers the largest
memory-static-max limit you wish to support.  I'm not sure if the tools
can do this yet.
With xl this should work using the "maxmem" option. (xm probably uses
the same name)

I'm not sure what maxmem do
maxmem sets static-max for the guest in the xl toolstack.

Well, I understand that, I simply don't understand what maxmem do with domain in xen (the hypervisor part). My hypothesis is just put a limit for amount of allocated PFN for domain.


but I can say, this option does not allow
to go beyond initial boot memory for pv_ops kernels and beyond
static-max memory for -xen kernel.
AFAIK the toolstack support for memory hotplug (i.e. growing beyond
static-max) does not yet exist.

As far as I know toolstack is not really do some work for this (if I wrong I'll be really appreciated for information). For memory control we need to set maxmem and send request to guest xenballon for new target (via xenstore). This works without running xapi and squeezed (of course, for VM start/reboot we need them), but simple memory management can be done manually without helps of xapi/squeezed. (Again, if I wrong, I do really like to now where I wrong). As far as I understand xapi writing dynamic-min, dynamic-max to xenstore for domain and call squeezed via xenstore-rpc to rebalance memory, and squeezed read request, read those values, calculate new target and writes it to xenstore for each domain.

My current description (I can be wrong) of stuff happens during memory resizing:
1) Set up maxmem
2) Send via memory/target target to xenballoon
3) Xenballoon request new  memory from hypervisor (or return back some of)
4) Xenballoon manipulate with domU memory management to allow use (or snatch away) memory pages.
I tested it with following python script (under xcp, with shutdowned
squeezed to be sure not get 'reballanced'):

xc.domain_setmaxmem(domid,memory)
xs.write("","/local/domain/%i/memory/dynamic-min"%domid,str(memory*1024))
xs.write("","/local/domain/%i/memory/dynamic-max"%domid,str(memory*1024))
xs.write("","/local/domain/%i/memory/static-max"%domid,str(memory*1024))
xs.write("","/local/domain/%i/memory/target"%domid,str(memory*1024))

It works fine within noted ranges, but simply ignores any request higher
them.
If you are stepping outside the toolstack and doing this sort of thing
behind its back then all bets are off and you can't really expect people
here to help you.

Please try and reproduce the issue using the standard toolstack options.

I am very well understand that, so I've tested this (not with all kernel versions) with normal XCP setup with default memory management: set up vm, make dyn-max=1GiB,static-max=2GiB, start vm, use xe vm-memory-target-set to 2GiB - and memory is still 1GiB. I've tested this with few pv_ops kernels, including those on xs-tools.iso (tested on XCP 0.5, 1.0 and 1.1, and even on XenServer 6) - same result.


P.S. Thank you for your attention to this issue.

_______________________________________________
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®.