Re: [PATCH v2 RFC] mm/vmscan: more restrictive condition for retry in do_try_to_free_pages

From: Johannes Weiner
Date: Thu Mar 16 2017 - 15:58:16 EST


On Sat, Mar 11, 2017 at 09:52:15AM -0800, Shakeel Butt wrote:
> On Sat, Mar 11, 2017 at 5:51 AM, Yisheng Xie <ysxie@xxxxxxxxxxx> wrote:
> > @@ -2808,7 +2826,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
> > return 1;
> >
> > /* Untapped cgroup reserves? Don't OOM, retry. */
> > - if (!sc->may_thrash) {
> > + if (!may_thrash(sc)) {
>
> Thanks Yisheng. The name of the function may_thrash() is confusing in
> the sense that it is returning exactly the opposite of what its name
> implies. How about reversing the condition of may_thrash() function
> and change the scan_control's field may_thrash to thrashed?

How so?

The user sets memory.low to a minimum below which the application will
thrash. Hence, being allowed to break that minimum and causing the app
to thrash, means you "may thrash".

OTOH, I'm not sure what "thrashed" would mean.