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