On Wed, 2015-01-21 at 22:22 -0700, Mike Latimer wrote: Sorry for the delay.
> @@ -2228,7 +2230,13 @@ 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 */ This isn't quite true -- you also reset the retry count if progress has been made. > + if (free_memkb <= free_memkb_prev) { > + retries--; I think you need to update prev here, otherwise after one successful iteration the condition is always true even if progress subsequently stalls. > + } else { > + retries = MAX_RETRIES; > + free_memkb_prev = free_memkb; ... iow the second assignment here should be after the if/else entirely. Given that this new loop can take significantly longer to fail I wonder if we should add some progress logging? xl has an xtl logger instance available so using xtl_progress might be an easy option. Maybe a separate patch though. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel