On 06/08, Oleg Nesterov wrote: > > > @@ -399,7 +399,7 @@ static int __oom_kill_process(struct task_struct *p, struct mem_cgroup *mem) > > p->rt.time_slice = HZ; > > set_tsk_thread_flag(p, TIF_MEMDIE); > > > > - force_sig(SIGKILL, p); > > + send_sig(SIGKILL, p, 1); > > This is not right, we need send_sig(SIGKILL, p, 0). Better yet, > send_sig_info(SIGKILL, SEND_SIG_NOINFO). I think send_sig() should > die. > > The reason is that si_fromuser() must be true, otherwise we can't kill > the SIGNAL_UNKILLABLE (sub-namespace inits) tasks. > > Oh. This reminds me, we really need the trivial (but annoying) cleanups > here. The usage of SEND_SIG_ constants is messy, and they should be > renamed at least. > > And in fact, we need the new one which acts like SEND_SIG_FORCED but > si_fromuser(). We do not want to allocate the memory when the caller > is oom_kill or zap_pid_ns_processes(). I tried to make some simple cleanups right now, but this really needs time and discussion. So. If we are going to remove force_sig() in mm/oom_kill.c (and I think we should), I'd like to add the trivial helper first. Oleg. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>