Re: WARNINGs in set_task_reclaim_state with memory cgroup and full memory usage

From: Yafang Shao
Date: Tue Aug 27 2019 - 07:56:55 EST


On Tue, Aug 27, 2019 at 7:50 PM Michal Hocko <mhocko@xxxxxxxxxx> wrote:
>
> On Tue 27-08-19 19:43:49, Yafang Shao wrote:
> > On Tue, Aug 27, 2019 at 6:43 PM Michal Hocko <mhocko@xxxxxxxxxx> wrote:
> > >
> > > If there are no objection to the patch I will post it as a standalong
> > > one.
> >
> > I have no objection to your patch. It could fix the issue.
> >
> > I still think that it is not proper to use a new scan_control here as
> > it breaks the global reclaim context.
> >
> > This context switch from global reclaim to memcg reclaim is very
> > subtle change to the subsequent processing, that may cause some
> > unexpected behavior.
>
> Why would it break it? Could you be more specific please?
>

Hmm, I have explained it when replying to Hillf's patch.
The most suspcious one is settting target_mem_cgroup here, because we
only use it to judge whether it is in global reclaim.
While the memcg softlimit reclaim is really in global reclaims.

Another example the reclaim_idx, if is not same with reclaim_idx in
page allocation context, the reclaimed pages may not be used by the
allocator, especially in the direct reclaim.

And some other things in scan_control.

> > Anyway, we can send this patch as a standalong one.
> > Feel free to add:
> >
> > Acked-by: Yafang Shao <laoar.shao@xxxxxxxxx>
>
> Thanks!
> --
> Michal Hocko
> SUSE Labs