lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 3 Feb 2012 17:36:51 +0100 From: Oleg Nesterov <oleg@...hat.com> To: Anton Vorontsov <anton.vorontsov@...aro.org> Cc: Greg KH <gregkh@...uxfoundation.org>, Arve Hjønnevåg <arve@...roid.com>, KOSAKI Motohiro <kosaki.motohiro@...il.com>, San Mehat <san@...gle.com>, Colin Cross <ccross@...roid.com>, "Eric W. Biederman" <ebiederm@...ssion.com>, linux-kernel@...r.kernel.org, kernel-team@...roid.com, linaro-kernel@...ts.linaro.org, "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com> Subject: Re: [PATCH v3] staging: android/lowmemorykiller: Don't grab tasklist_lock On 02/03, Anton Vorontsov wrote: > > @@ -132,7 +133,7 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) > } > selected_oom_adj = min_adj; > > - read_lock(&tasklist_lock); > + rcu_read_lock(); > for_each_process(p) { > struct mm_struct *mm; > struct signal_struct *sig; > @@ -180,12 +181,12 @@ static int lowmem_shrink(struct shrinker *s, struct shrink_control *sc) > lowmem_deathpending = selected; > task_handoff_register(&task_nb); > #endif > - force_sig(SIGKILL, selected); > + send_sig(SIGKILL, selected, 0); > rem -= selected_tasksize; > } > lowmem_print(4, "lowmem_shrink %lu, %x, return %d\n", > sc->nr_to_scan, sc->gfp_mask, rem); > - read_unlock(&tasklist_lock); > + rcu_read_unlock(); I think this is correct. As for ->mm check please look at find_lock_task_mm(). You can also remove the !sig check. And, forgot to mention. There is another reason why mm != NULL check is wrong (send_sig_all too). A kernel thread can do use_mm(). You should also check PF_KTHREAD. Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists