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

Re: [Xen-devel] freemem-slack and large memory environments



On Monday, March 02, 2015 04:15:41 PM Stefano Stabellini wrote:
> On Mon, 2 Mar 2015, Ian Campbell wrote:
> > ? "Continue as long as progress is being made" is exactly what
> > 2563bca1154 "libxl: Wait for ballooning if free memory is increasing"
> > was trying to implement, so it certainly was the idea behind the current
> > implementation (it may well not have managed to implement the idea it
> > was trying to).
> 
> I don't think so: pre-2563bca1154 it wasn't and 2563bca1154 doesn't
> implement it properly.  I think we should revert it.

I agree. The intent was there, but we are not aware of any known problem cases 
that the changes will effect. Reverting seems like the right thing to do.

> I agree with the suggestion "continue as long as progress is being
> made". I disagree that "continue as long as progress is being made" is
> the current logic of freemem.
> 
> I don't have an opinion on whether that logic should be implemented in
> freemem or libxl_wait_for_memory_target. The code below implements it in
> libxl_wait_for_memory_target.

Seems like it should wait in libxl_wait_for_memory_target, as you have 
implemented.

> > > The following changes to freemem implements the aforementioned logic by
> > > improving libxl_wait_for_memory_target to keep going as long as dom0 is
> > > able to make progress and removing the useless free_memkb >
> > > free_memkb_prev check.

I just finished testing your changes and they work correctly in my environment. 
An interesting thing to note is that within the 1 second delay in the loop, my 
test machine was ballooning down about 512M. This resulted in the loop being 
executed 127 times in order to balloon down the required 64G. (I'm not sure if 
there is any reason to worry about that though.)

One small question on freemem...  The loop essentially looks like:

  libxl_get_free_memory:  Get free memory
  If free_memkb >= need_memkb, return
  libxl_set_memory_target:  Balloon dom0 to free memory for domU
  libxl_wait_for_free_memory:  Wait for free memory for domU (max 10 seconds)
  libxl_wait_for_memory_target:  Wait for dom0 to finish ballooning
  Decrement retry and try again

Shouldn't libxl_wait_for_memory_target be before libxl_wait_for_free_memory?

Thanks,
Mike

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