From: David Rientjes on 8 Jun 2010 14:30 On Tue, 8 Jun 2010, KOSAKI Motohiro wrote: > > diff --git a/mm/oom_kill.c b/mm/oom_kill.c > > index 67b5fa5..ad85e1b 100644 > > --- a/mm/oom_kill.c > > +++ b/mm/oom_kill.c > > @@ -638,6 +638,16 @@ void out_of_memory(struct zonelist *zonelist, gfp_t gfp_mask, > > } > > > > /* > > + * If current has a pending SIGKILL, then automatically select it. The > > + * goal is to allow it to allocate so that it may quickly exit and free > > + * its memory. > > + */ > > + if (fatal_signal_pending(current)) { > > + set_tsk_thread_flag(current, TIF_MEMDIE); > > + return; > > + } > > Self NAK this. > We have no gurantee that current is oom killable. Oh, here is > out_of_memory(), sigh. > We're not killing it, it's already dying. We're simply giving it access to memory reserves so it may allocate and quickly exit to free its memory. Being OOM_DISABLE does not imply the task cannot exit or use memory reserves in the exit path. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: [STAGING] Spectra Flash Translation Layer Next: oom: use send_sig() instead force_sig() |