Re: [RFC 1/3] oom, sysrq: Skip over oom victims and killed tasks

From: David Rientjes
Date: Thu Jan 14 2016 - 16:51:25 EST


On Thu, 14 Jan 2016, Michal Hocko wrote:

> > > > I think it would be
> > > > better for sysrq+f to first select a process with fatal_signal_pending()
> > > > set so it silently gets access to memory reserves and then a second
> > > > sysrq+f to choose a different process, if necessary, because of
> > > > TIF_MEMDIE.
> > >
> > > The disadvantage of this approach is that sysrq+f might silently be
> > > ignored and the administrator doesn't have any signal about that.
>
> Sorry I meant to say "administrator doesn't know why it has been
> ignored". But it would have been better to say "administrator cannot do
> anything about that".
>
> > The administrator can check the kernel log for an oom kill.
>
> What should the admin do when the request got ignored, though? sysrq+i?
> sysrq+b?
>

We're not striving for a solution to general process exiting issues or oom
livelock situations by requiring admins to use a sysrq trigger. Sysrq+F
could arguably be removed at this point since it solely existed to trigger
the oom killer when newly rewritten reclaim thrashed and the page
allocator didn't call it fast enough. Since the oom killer allows killed
processes to gain access to memory reserves, we could extend that to
contexts that do not allow calling the oom killer to set TIF_MEMDIE, and
then simply require root to send a SIGKILL rather than do sysrq+F. I
think it's time to kill sysrq+F and I'll send those two patches unless
there is a usecase I'm not aware of.