[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] libxl: Wait for ballooning if free memory is increasing
On Wed, 2015-01-28 at 17:14 -0700, Mike Latimer wrote: > > > + 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. > > If progress stalls, the above statement needs to be true in order to > decrement > the retry count. The test is comparing free_memkb as set at the beginning of > the loop though, so it is not completely accurate. The next iteration of the > loop resets it, so progress should be caught (unless I'm missing something). > > > > + } else { > > > + retries = MAX_RETRIES; > > > + free_memkb_prev = free_memkb; > > > > ... iow the second assignment here should be after the if/else entirely. > > If there is a chance that free_memkb could drop lower between iterations, I > wanted free_memkb_prev to act as a watermark and only be updated once > free_memkb has gone back above that watermark. If that is not a concern, I > can > set free_memkb_prev outside of the if statement, and just use it to track > changes between each iteration of the loop. It turns out that I was very confused, starting with thinking we wanted free_memkb to be decreasing for some reason! I did myself a proper worked example and I now get what you are saying, and I think your algorithm is indeed correct, sorry for the noise. I'm thinking it would be clearer if the comment and the condition were logically inverted. e.g.: /* * If the amount of free mem has increased on this iteration (i.e. * some progress has been made) then reset the retry counter. */ if (freemem_kb > freemem_kb_prev) { retries = MAX_RETRIES; free_memkb_prev = free_memkb; } else { retires--; } > > > 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. > > Good idea. I'll look into adding that. Thanks. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |