Re: [RFC PATCH] mm: have kswapd only reclaiming use min protection on memcg

From: Zhaoyang Huang
Date: Wed Oct 27 2021 - 03:46:44 EST


On Wed, Oct 27, 2021 at 3:20 PM Michal Hocko <mhocko@xxxxxxxx> wrote:
>
> On Wed 27-10-21 15:01:50, Huangzhaoyang wrote:
> > From: Zhaoyang Huang <zhaoyang.huang@xxxxxxxxxx>
> >
> > For the kswapd only reclaiming, there is no chance to try again on
> > this group while direct reclaim has. fix it by judging gfp flag.
>
> There is no problem description (same as in your last submissions. Have
> you looked at the patch submission documentation as recommended
> previously?).
>
> Also this patch doesn't make any sense. Both direct reclaim and kswapd
> use a gfp mask which contains __GFP_DIRECT_RECLAIM (see balance_pgdat
> for the kswapd part)..
ok, but how does the reclaiming try with memcg's min protection on the
alloc without __GFP_DIRECT_RECLAIM?
>
> > Signed-off-by: Zhaoyang Huang <zhaoyang.huang@xxxxxxxxxx>
>
> Nacked-by: Michal Hocko <mhocko@xxxxxxxx>
>
> > ---
> > mm/vmscan.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/mm/vmscan.c b/mm/vmscan.c
> > index 74296c2..41f5776 100644
> > --- a/mm/vmscan.c
> > +++ b/mm/vmscan.c
> > @@ -2704,7 +2704,8 @@ static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc,
> > unsigned long protection;
> >
> > /* memory.low scaling, make sure we retry before OOM */
> > - if (!sc->memcg_low_reclaim && low > min) {
> > + if (!sc->memcg_low_reclaim && low > min
> > + && sc->gfp_mask & __GFP_DIRECT_RECLAIM) {
> > protection = low;
> > sc->memcg_low_skipped = 1;
> > } else {
> > --
> > 1.9.1
>
> --
> Michal Hocko
> SUSE Labs