From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peter Zijlstra Date: Sat, 24 Mar 2012 12:43:41 +0000 Subject: Re: [PATCH 01/10] cpu: Introduce clear_tasks_mm_cpumask() helper Message-Id: <1332593021.16159.27.camel@twins> List-Id: References: <20120324102609.GA28356@lizard> <20120324102751.GA29067@lizard> In-Reply-To: <20120324102751.GA29067@lizard> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-arm-kernel@lists.infradead.org On Sat, 2012-03-24 at 14:27 +0400, Anton Vorontsov wrote: > +void clear_tasks_mm_cpumask(int cpu) > +{ > + struct task_struct *p; > + > + read_lock(&tasklist_lock); > + for_each_process(p) { > + struct task_struct *t; > + > + t = find_lock_task_mm(p); > + if (!t) > + continue; > + cpumask_clear_cpu(cpu, mm_cpumask(t->mm)); > + task_unlock(t); > + } > + read_unlock(&tasklist_lock); > +} Why bother with the tasklist_lock at all anymore, afaict you could use rcu_read_lock() here. This all is called after the cpu is taken down and marked offline, so its not like new tasks will ever get this cpu set in their mm mask. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <1332593021.16159.27.camel@twins> From: Peter Zijlstra Date: Sat, 24 Mar 2012 13:43:41 +0100 In-Reply-To: <20120324102751.GA29067@lizard> References: <20120324102609.GA28356@lizard> <20120324102751.GA29067@lizard> Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Subject: Re: [PATCH 01/10] cpu: Introduce clear_tasks_mm_cpumask() helper To: Anton Vorontsov Cc: Andrew Morton , Oleg Nesterov , Russell King , Mike Frysinger , Benjamin Herrenschmidt , Richard Weinberger , Paul Mundt , KOSAKI Motohiro , John Stultz , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, uclinux-dist-devel@blackfin.uclinux.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, user-mode-linux-devel@lists.sourceforge.net, linux-mm@kvack.org List-ID: On Sat, 2012-03-24 at 14:27 +0400, Anton Vorontsov wrote: > +void clear_tasks_mm_cpumask(int cpu) > +{ > + struct task_struct *p; > + > + read_lock(&tasklist_lock); > + for_each_process(p) { > + struct task_struct *t; > + > + t = find_lock_task_mm(p); > + if (!t) > + continue; > + cpumask_clear_cpu(cpu, mm_cpumask(t->mm)); > + task_unlock(t); > + } > + read_unlock(&tasklist_lock); > +} Why bother with the tasklist_lock at all anymore, afaict you could use rcu_read_lock() here. This all is called after the cpu is taken down and marked offline, so its not like new tasks will ever get this cpu set in their mm mask. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from merlin.infradead.org (merlin.infradead.org [IPv6:2001:4978:20e::2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 87E7EB6FA7 for ; Sat, 24 Mar 2012 23:44:57 +1100 (EST) Message-ID: <1332593021.16159.27.camel@twins> Subject: Re: [PATCH 01/10] cpu: Introduce clear_tasks_mm_cpumask() helper From: Peter Zijlstra To: Anton Vorontsov Date: Sat, 24 Mar 2012 13:43:41 +0100 In-Reply-To: <20120324102751.GA29067@lizard> References: <20120324102609.GA28356@lizard> <20120324102751.GA29067@lizard> Content-Type: text/plain; charset="ISO-8859-1" Mime-Version: 1.0 Cc: Mike Frysinger , user-mode-linux-devel@lists.sourceforge.net, linux-sh@vger.kernel.org, Richard Weinberger , linuxppc-dev@lists.ozlabs.org, Oleg Nesterov , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Paul Mundt , John Stultz , KOSAKI Motohiro , Russell King , Andrew Morton , uclinux-dist-devel@blackfin.uclinux.org, linux-arm-kernel@lists.infradead.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Sat, 2012-03-24 at 14:27 +0400, Anton Vorontsov wrote: > +void clear_tasks_mm_cpumask(int cpu) > +{ > + struct task_struct *p; > + > + read_lock(&tasklist_lock); > + for_each_process(p) { > + struct task_struct *t; > + > + t =3D find_lock_task_mm(p); > + if (!t) > + continue; > + cpumask_clear_cpu(cpu, mm_cpumask(t->mm)); > + task_unlock(t); > + } > + read_unlock(&tasklist_lock); > +}=20 Why bother with the tasklist_lock at all anymore, afaict you could use rcu_read_lock() here. This all is called after the cpu is taken down and marked offline, so its not like new tasks will ever get this cpu set in their mm mask. From mboxrd@z Thu Jan 1 00:00:00 1970 From: a.p.zijlstra@chello.nl (Peter Zijlstra) Date: Sat, 24 Mar 2012 13:43:41 +0100 Subject: [PATCH 01/10] cpu: Introduce clear_tasks_mm_cpumask() helper In-Reply-To: <20120324102751.GA29067@lizard> References: <20120324102609.GA28356@lizard> <20120324102751.GA29067@lizard> Message-ID: <1332593021.16159.27.camel@twins> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Sat, 2012-03-24 at 14:27 +0400, Anton Vorontsov wrote: > +void clear_tasks_mm_cpumask(int cpu) > +{ > + struct task_struct *p; > + > + read_lock(&tasklist_lock); > + for_each_process(p) { > + struct task_struct *t; > + > + t = find_lock_task_mm(p); > + if (!t) > + continue; > + cpumask_clear_cpu(cpu, mm_cpumask(t->mm)); > + task_unlock(t); > + } > + read_unlock(&tasklist_lock); > +} Why bother with the tasklist_lock at all anymore, afaict you could use rcu_read_lock() here. This all is called after the cpu is taken down and marked offline, so its not like new tasks will ever get this cpu set in their mm mask. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from psmtp.com (na3sys010amx161.postini.com [74.125.245.161]) by kanga.kvack.org (Postfix) with SMTP id 3B3B36B00FF for ; Sat, 24 Mar 2012 08:44:48 -0400 (EDT) Message-ID: <1332593021.16159.27.camel@twins> Subject: Re: [PATCH 01/10] cpu: Introduce clear_tasks_mm_cpumask() helper From: Peter Zijlstra Date: Sat, 24 Mar 2012 13:43:41 +0100 In-Reply-To: <20120324102751.GA29067@lizard> References: <20120324102609.GA28356@lizard> <20120324102751.GA29067@lizard> Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 Sender: owner-linux-mm@kvack.org List-ID: To: Anton Vorontsov Cc: Andrew Morton , Oleg Nesterov , Russell King , Mike Frysinger , Benjamin Herrenschmidt , Richard Weinberger , Paul Mundt , KOSAKI Motohiro , John Stultz , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, uclinux-dist-devel@blackfin.uclinux.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, user-mode-linux-devel@lists.sourceforge.net, linux-mm@kvack.org On Sat, 2012-03-24 at 14:27 +0400, Anton Vorontsov wrote: > +void clear_tasks_mm_cpumask(int cpu) > +{ > + struct task_struct *p; > + > + read_lock(&tasklist_lock); > + for_each_process(p) { > + struct task_struct *t; > + > + t =3D find_lock_task_mm(p); > + if (!t) > + continue; > + cpumask_clear_cpu(cpu, mm_cpumask(t->mm)); > + task_unlock(t); > + } > + read_unlock(&tasklist_lock); > +}=20 Why bother with the tasklist_lock at all anymore, afaict you could use rcu_read_lock() here. This all is called after the cpu is taken down and marked offline, so its not like new tasks will ever get this cpu set in their mm mask. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. 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: email@kvack.org