Re: [PATCH 1/1] mm: vmscan: Reduce throttling due to a failure to make progress

Mike Galbraith
2021-12-01T04:32:59Z

On Tue, 2021-11-30 at 13:09 +0000, Mel Gorman wrote:
> On Tue, Nov 30, 2021 at 01:51:10PM +0100, Mike Galbraith wrote:
> > On Tue, 2021-11-30 at 13:00 +0100, Mike Galbraith wrote:
> > > On Tue, 2021-11-30 at 11:22 +0000, Mel Gorman wrote:
> > > > On Tue, Nov 30, 2021 at 11:14:32AM +0100, Mike Galbraith wrote:
> > > > > >       }
> > > > > > +       if (2 * write_pending <= reclaimable)
> > > > >
> > > > > That is always true here...
> > > > >
> > > >
> > > > Always true for you or always true in general?
> > >
> > > "Here" as in the boxen located at my GPS coordinates :)
> > >
> > > > The intent of the check is "are a majority of reclaimable pages
> > > > marked WRITE_PENDING?". It's similar to the check that existed prior
> > > > to 132b0d21d21f ("mm/page_alloc: remove the throttling logic from the
> > > > page allocator").
> > >
> > > I'll put my trace_printk() back and see if I can't bend-adjust it.
> >
> > As it sits, write_pending is always 0 with tail /dev/zero.
> >
>
> That is not a surprise for the test in question as it doesn't trigger
> a case where there are lots of page cache being marked dirty and write
> pending.

I found a way to make it go false, around 80% of the time on the way to
the first oom-kill in fact. Starting 2 memcg stress instances and a
memory sized bonnie did the trick. 'course getting those started was
the last thing my desktop did before taking up residence on spinning
rust and staying there for the 10 minute test duration, mouse pointer
didn't even manage to twitch :)

That's way worse than having box try to swallow /dev/zero, that gets
killed pretty quickly with your latest patch. The grim reaper tried to
help with nutty overcommit, but two kills in 10 minutes wasn't enough.

-Mike