Hi Kame, On Thu, May 12, 2011 at 9:52 AM, KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote: > On Tue, 10 May 2011 17:15:01 +0900 (JST) > KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> wrote: > >> This patch introduces do_each_thread_reverse() and >> select_bad_process() uses it. The benefits are two, >> 1) oom-killer can kill younger process than older if >> they have a same oom score. Usually younger process >> is less important. 2) younger task often have PF_EXITING >> because shell script makes a lot of short lived processes. >> Reverse order search can detect it faster. >> >> Reported-by: CAI Qian <caiqian@xxxxxxxxxx> >> Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx> > > IIUC, for_each_thread() can be called under rcu_read_lock() but > for_each_thread_reverse() must be under tasklist_lock. Just out of curiosity. You mentioned it when I sent forkbomb killer patch. :) >From at that time, I can't understand why we need holding tasklist_lock not rcu_read_lock. Sorry for the dumb question. At present, it seems that someone uses tasklist_lock and others uses rcu_read_lock. But I can't find any rule for that. Could you elaborate it, please? Doesn't it need document about it? -- Kind regards, Minchan Kim -- 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/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>