Re: [sched] Out of memory: Kill process 2999 (rc) score 9 or sacrifice child

From: Kirill Tkhai
Date: Mon Aug 11 2014 - 02:18:14 EST




10.08.2014, 19:31, "Oleg Nesterov" <oleg@xxxxxxxxxx>:
> On 08/09, Peter Zijlstra wrote:
>>  That would suggest we're failing to do the TASK_DEAD thing properly, and
>>  ARGH! bloody obvious why, see the this_rq() comment right before the
>>  finish_task_switch() call in context_switch().
>
> Off-topic, but perhaps we can make this a bit more clear?
>
> Hmm. But after I actually did this change I can't understand if it makes
> this more clean or uglifies the code. See the patch below.
>
> OTOH, "int cpu" in __schedule() looks pointless and should die? Both
> rcu_note_context_switch() and wq_worker_sleeping() can use
> raw_smp_processor_id() ? In fact I think wq_worker_sleeping() doesn't
> need the "task" argument too.
>
> And... Doesn't schedule_tail() need preempt_enable() before
> finish_task_switch() ? IOW, shouldn't it do
>
>         #ifndef __ARCH_WANT_UNLOCKED_CTXSW
>                 preempt_disable();
>         #endif
>                 finish_task_switch();
>                 post_schedule(rq);
>
>                 preempt_enable();
>
> or I am totally confused?

You're sure, this was discussed here:

https://lkml.org/lkml/2014/2/14/243
--
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/