Prev: Fix a race in pid generation that causes pids to be reused immediately.
Next: [PATCH 1/1] signals: introduce send_sigkill() helper
From: Oleg Nesterov on 9 Jun 2010 21:10 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 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/ |