On Thu, Mar 19, 2020 at 06:13:34PM +0100, Michal Hocko wrote: > It is usually preferable to Cc author of the code (added Johannes) > > On Thu 19-03-20 17:59:38, mateusznosek0@xxxxxxxxx wrote: > > From: Mateusz Nosek <mateusznosek0@xxxxxxxxx> > > > > Previously 0 was assigned to 'sc->skipped_deactivate'. It could happen only > > if 'sc->skipped_deactivate' was 0 so the assignment is unnecessary and can > > be removed. > > The above wording was a bit hard to understdand for me. I would go with > " > sc->memcg_low_skipped resets skipped_deactivate to 0 but this is not > needed as this code path is never reachable with skipped_deactivate != 0 > due to previous sc->skipped_deactivate branch. > " Yeah that sounds good. > > Signed-off-by: Mateusz Nosek <mateusznosek0@xxxxxxxxx> > > The patch is correct. I am not sure it results in a better code though. > I will defer to Johannes here. I suspect he simply wanted to express > that skipped_deactivate should be always reset when retrying the direct > reclaim. After this patch this could be lost in future changes so the > code would be more subtle. But I am only guessing here. It's a valid concern, but I think in this case specifically we're very unlikely to change the ordering here - violate memory.low before going after active pages of unprotected cgroups. I indeed just kept it stupid: reset everything, then retry. But it appears that the unnecessary assignment trips people up and wastes their time, so I'm in favor of removing it. Acked-by: Johannes Weiner <hannes@xxxxxxxxxxx>