[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 Thu, Jan 8, 2015 at 1:11 AM, Mike Latimer <mlatimer@xxxxxxxx> wrote: > 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; I would: 1. Reset the retries after a successful increase 2. Not allow free_memkb_prev to go down. So maybe something like the following? if (free_memkb <= free_memkb_prev) { retries--; } else { retries = MAX_RETRIES; free_memkb_prev = free_memkb; } I'm inclined to say we could add an option to say "wait forever", or to increase the period of the checks; but ultimately at some point someone (either xl or the human) needs to timeout and say, "This is never going to finish". 10s seems like a very conservative default. -George _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |