On Mon, May 24, 2021 at 08:52:02AM -0700, Dave Hansen wrote: > > To address your point requires much deeper surgery. > ... > > There is value to doing something like this but it's beyond what this > > series is trying to do and doing the work without introducing regressions > > would be very difficult. > > Agreed, such a solution is outside of the scope of what this set is > trying to do. > > It would be nice to touch on this counter-intuitive property in the > changelog, and *maybe* add a WARN_ON_ONCE() if we hit an edge case. > Maybe WARN_ON_ONCE() if pcp->high gets below pcp->batch*SOMETHING. > I think it's reasonable to ensure pcp->batch is never above pcp->high so I have this in zone_highsize now + /* + * Ensure high is at least batch*4. The multiple is based on the + * historical relationship between high and batch. + */ + high = max(high, batch << 2); Performance tests are running and I'll post a v2 assuming they pass. -- Mel Gorman SUSE Labs