Re: System freezes after OOM

From: Mikulas Patocka
Date: Fri Jul 15 2016 - 13:02:25 EST




On Fri, 15 Jul 2016, Michal Hocko wrote:

> On Fri 15-07-16 08:11:22, Mikulas Patocka wrote:
> >
> > The stacktraces showed that the kcryptd process was throttled when it
> > tried to do mempool allocation. Mempool adds the __GFP_NORETRY flag to the
> > allocation, but unfortunatelly, this flag doesn't prevent the allocator
> > from throttling.
>
> Yes and in fact it shouldn't prevent any throttling. The flag merely
> says that the allocation should give up rather than retry
> reclaim/compaction again and again.
>
> > I say that the process doing mempool allocation shouldn't ever be
> > throttled. Maybe add __GFP_NOTHROTTLE?
>
> A specific gfp flag would be an option but we are slowly running out of
> bit space there and I am not yet convinced PF_LESS_THROTTLE is
> unsuitable.

PF_LESS_THROTTLE will make it throttle less, but it doesn't eliminate
throttling entirely. So, maybe add PF_NO_THROTTLE? But PF_* flags are also
almost exhausted.

> I might be missing something but exactly this is what happens in
> wait_iff_congested no? If the bdi doesn't see the congestion it wakes up
> the reclaim context even before the timeout. Or are we talking past each
> other?

OK, I see that there is wait queue in congestion_wait. I didn't notice it
before.

Mikulas

> --
> Michal Hocko
> SUSE Labs
>