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

Re: [Xen-devel] [PATCH 0/4] fix freemem loop



On Fri, 2015-03-06 at 09:52 +0000, Stefano Stabellini wrote:
> On Fri, 6 Mar 2015, Ian Campbell wrote:
> > On Thu, 2015-03-05 at 21:08 -0700, Mike Latimer wrote:
> > > On Thursday, March 05, 2015 05:49:35 PM Ian Campbell wrote:
> > > > On Tue, 2015-03-03 at 11:08 +0000, Stefano Stabellini wrote:
> > > > > Hi all,
> > > > > 
> > > > > this patch series fixes the freemem loop on machines with very large
> > > > > amount of memory, where the current wait time is not enough.
> > > > > 
> > > > > In order to be able to handle arbitrarly large amount of ram, we
> > > > > implement in libxl_wait_for_memory_target a policy of waiting until 
> > > > > dom0
> > > > > is making progress.
> > > > 
> > > > What is the impact of the libxl API change made here on other callers,
> > > > in particular libvirt?
> > 
> > I should have CCd Jim when I asked the question. Now done.
> > 
> > > This change will have one interesting effect on libvirt. Currently, 
> > > libxlDomainFreeMem loops 3 times, then returns 0 (if no errors are 
> > > encountered). This means that domain creation starts before dom0 finishes 
> > > ballooning (unlike xl's previous behavior, which would fail).
> > > 
> > > With this change, domain creation through virsh will wait (in 
> > > libxl_wait_for_memory_target) until dom0 finishes ballooning. This should 
> > > result in an increase in the speed of the domain starting, as there will 
> > > not 
> > > be memory contention between the two processes.
> > > 
> > > The libvirt side calls libxl_wait_for_memory_target with a 1 second 
> > > timeout - 
> > > which doesn't leave a huge amount of room for slow memory allocation. 
> > > This 
> > > timeout, as well as the logic in general, should be changed to match the 
> > > new 
> > > xl behavior (IMO). I expect this to really only matter when dealing with 
> > > large 
> > > domains.
> > 
> > For libvirt we also need to consider what happens when a libvirt which
> > is modified along these lines uses an older libxl (I believe back to 4.2
> > is supported).
> 
> In the libvirt case even if libvirt calls libxl_wait_for_memory_target
> with just 1 second timeout, it is likely going to end up waiting longer
> than that due to the change in behaviour of the function.
> 
> What I am saying is that even if we don't modify libvirt, we are going to
> get a more reliable and more stable behaviour than what we have now.
> 
> That said, I agree that it would be good to improve the freemem loop in
> libvirt in a similar way to what we are doing with xl.

This is missing my point.

We need to consider the case of a modified libvirt with the old, broken,
libxl too.

You've only considered an unmodified libvirt running with a fixed libxl.

Ian.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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