On Tue, Jan 29, 2019 at 02:15:25PM -0500, Chris Down wrote: > Roman points out that when when we do the low reclaim pass, we scale the > reclaim pressure relative to position between 0 and the maximum > protection threshold. > > However, if the maximum protection is based on memory.elow, and > memory.emin is above zero, this means we still may get binary behaviour > on second-pass low reclaim. This is because we scale starting at 0, not > starting at memory.emin, and since we don't scan at all below emin, we > end up with cliff behaviour. > > This should be a fairly uncommon case since usually we don't go into the > second pass, but it makes sense to scale our low reclaim pressure > starting at emin. > > You can test this by catting two large sparse files, one in a cgroup > with emin set to some moderate size compared to physical RAM, and > another cgroup without any emin. In both cgroups, set an elow larger > than 50% of physical RAM. The one with emin will have less page > scanning, as reclaim pressure is lower. > > Signed-off-by: Chris Down <chris@xxxxxxxxxxxxxx> > Suggested-by: Roman Gushchin <guro@xxxxxx> > Cc: Johannes Weiner <hannes@xxxxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Cc: Michal Hocko <mhocko@xxxxxxxxxx> > Cc: Tejun Heo <tj@xxxxxxxxxx> > Cc: Roman Gushchin <guro@xxxxxx> > Cc: Dennis Zhou <dennis@xxxxxxxxxx> > Cc: linux-kernel@xxxxxxxxxxxxxxx > Cc: cgroups@xxxxxxxxxxxxxxx > Cc: linux-mm@xxxxxxxxx > Cc: kernel-team@xxxxxx Acked-by: Roman Gushchin <guro@xxxxxx> Thanks!