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

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



On Tue, 2011-12-13 at 22:53 +0000, George Shuklin wrote:
> 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.

It controls precisely the behaviour you need! Try "maxmem=2048" and
"memory=1024" in your guest configuration, it should boot with 1G of RAM
and allow you to balloon to 2G and back.

The maxmem option mainly passes an appropriate e820 table to the guest
to cause it to allocate enough space for 2G of pages.

On some versions of Linux you might also need to add mem=2G to the
kernel command line to work around a bug. That is fixed in the most
recent versions though.

> >
> >> 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).

I'm not really sure what you are referring to here. Memory hotplug does
not currently work so lets leave it aside and talk only about the
booting with the balloon pre-inflated case since that should work.

You seem to be using XAPI in which case xen-api@ is the right list to
ask for information. I believe you can set various VM.memory-* options
on the VM to control all this stuff.

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

No. You might find that it works sometimes but going behind the
toolstack's back is not supported.

>  (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.

You'd have to ask xen-api@ about that stuff. I'm sure you can disable
squeezed for a host or a domain without killing the daemon(s) and doing
things manually. Setting dynamic-min and max to the same thing probably
has the same effect.

> My current description (I can be wrong) of stuff happens during memory 
> resizing:

Step "0) Boot guest with static-max larger than initial allocation" is
important for this to work.

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

And which result is that? What does "doesn't work" actually mean?

Please take a look at
http://wiki.xen.org/wiki/Reporting_Bugs_against_Xen and consider
including your precise kernel configuration, appropriate log files,
dmesg etc etc. You might also be best off reporting as a separate thread
and since you are using XCP you should include xen-api@.

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