[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] xl only waits 33 seconds for ballooning to complete
On Wednesday, January 07, 2015 09:38:31 AM Ian Campbell wrote: > That's exactly what I was about to suggest as I read the penultimate > paragraph, i.e. keep waiting so long as some reasonable delta occurs on > each iteration. Thanks, Ian. I wonder if there is a future-safe threshold on the amount of delta that indicates progress is being made. Should some minimum safe progress amount or percentage be set, or is it better to just make sure free memory is increasing at the end of each iteration of the loop? For example, the following simple change just tracks free_memkb and only decrements the retry count if it has not increased since the last check: ---------------------- diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index ed0d478..4cf2991 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -2196,7 +2196,7 @@ static int preserve_domain(uint32_t *r_domid, libxl_event *event, static int freemem(uint32_t domid, libxl_domain_build_info *b_info) { int rc, retries = 3; - uint32_t need_memkb, free_memkb; + uint32_t need_memkb, free_memkb, free_memkb_prev = 0; if (!autoballoon) return 0; @@ -2229,7 +2229,10 @@ static int freemem(uint32_t domid, libxl_domain_build_info *b_info) if (rc < 0) return rc; - retries--; + /* only decrement retry count if free_memkb is not increasing */ + if (free_memkb <= free_memkb_prev) + retries--; + free_memkb_prev = free_memkb; } while (retries > 0); return ERROR_NOMEM; ---------------------- I'm not sure if the above approach is always safe, but it works in my testing. I'd appreciate any other thoughts you might have before I try submitting an official patch for this... Thanks, Mike _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |