> On 19 Feb 2018, at 09:47, Mel Gorman <mgor...@suse.de> wrote: > > On Sun, Feb 18, 2018 at 04:47:55PM +0000, robert.m.har...@oracle.com wrote: >> From: "Robert M. Harris" <robert.m.har...@oracle.com> >> >> __fragmentation_index() calculates a value used to determine whether >> compaction should be favoured over page reclaim in the event of allocation >> failure. The calculation itself is opaque and, on inspection, does not >> match its existing description. The function purports to return a value >> between 0 and 1000, representing units of 1/1000. Barring the case of a >> pathological shortfall of memory, the lower bound is instead 500. This is >> significant because it is the default value of sysctl_extfrag_threshold, >> i.e. the value below which compaction should be avoided in favour of page >> reclaim for costly pages. >> >> This patch implements and documents a modified version of the original >> expression that returns a value in the range 0 <= index < 1000. It amends >> the default value of sysctl_extfrag_threshold to preserve the existing >> behaviour. >> >> Signed-off-by: Robert M. Harris <robert.m.har...@oracle.com> > > You have to update sysctl_extfrag_threshold as well for the new bounds.
This patch makes its default value zero. > It effectively makes it a no-op but it was a no-op already and adjusting > that default should be supported by data indicating it's safe. Would it be acceptable to demonstrate using tracing that in both the pre- and post-patch cases 1. compaction is attempted regardless of fragmentation index, excepting that 2. reclaim is preferred even for non-zero fragmentation during an extreme shortage of memory ? Robert Harris