Re: [patch 10/11 -mmotm] oom: avoid oom kill if no interruptibletasks

From: David Rientjes
Date: Mon May 11 2009 - 19:09:02 EST


On Mon, 11 May 2009, Andrew Morton wrote:

> > If there are no interruptible system tasks other than kthreads,
>
> It's unclear what the term "system task" means. Just "task"?
>

Yes.

> > no task
> > should be chosen for oom kill since they won't respond to the SIGKILL
> > anyway. Instead, we choose to simply fail page allocations if reclaim
> > cannot free memory and hope for the best.
>
> But plain old user processes enter and leave D state all the time. The
> task may well just be sitting there waiting for a disk read to
> complete. It will respond to the SIGKILL shortly after the IO
> completes, so an appropriate action here is to just wait for that to
> happen.
>

Since current is in the oom killer, it's runnable. So the only way this
can fail an allocation is if a kthread is looking for memory and reclaim
has failed and no user tasks are running. It's not guaranteed that any
memory will ever become available (for instance if all userspace tasks are
waiting on mm->mmap_sem for an oom killed task that will never exit even
after having been given TIF_MEMDIE), so the best course of action is to
fail, if allowed.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/