All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] check_for_tasks: read_lock(tasklist_lock) doesn't need to disable irqs
@ 2015-09-10 13:07 Oleg Nesterov
  2015-09-10 13:31 ` Kirill Tkhai
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Oleg Nesterov @ 2015-09-10 13:07 UTC (permalink / raw)
  To: Ingo Molnar, Peter Zijlstra; +Cc: Kirill Tkhai, Srikar Dronamraju, linux-kernel

check_for_tasks() doesn't need to disable irqs, recursive read_lock()
from interrupt is fine.

While at it, s/do_each_thread/for_each_process_thread/.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
---
 kernel/cpu.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/kernel/cpu.c b/kernel/cpu.c
index 94bbe46..24551f2 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -302,8 +302,8 @@ static inline void check_for_tasks(int dead_cpu)
 {
 	struct task_struct *g, *p;
 
-	read_lock_irq(&tasklist_lock);
-	do_each_thread(g, p) {
+	read_lock(&tasklist_lock);
+	for_each_process_thread(g, p) {
 		if (!p->on_rq)
 			continue;
 		/*
@@ -318,8 +318,8 @@ static inline void check_for_tasks(int dead_cpu)
 
 		pr_warn("Task %s (pid=%d) is on cpu %d (state=%ld, flags=%x)\n",
 			p->comm, task_pid_nr(p), dead_cpu, p->state, p->flags);
-	} while_each_thread(g, p);
-	read_unlock_irq(&tasklist_lock);
+	}
+	read_unlock(&tasklist_lock);
 }
 
 struct take_cpu_down_param {
-- 
1.5.5.1



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] check_for_tasks: read_lock(tasklist_lock) doesn't need to disable irqs
  2015-09-10 13:07 [PATCH] check_for_tasks: read_lock(tasklist_lock) doesn't need to disable irqs Oleg Nesterov
@ 2015-09-10 13:31 ` Kirill Tkhai
  2015-09-11 10:24 ` Srikar Dronamraju
  2015-09-13 10:56 ` [tip:sched/core] cpu/hotplug: Read_lock(tasklist_lock) doesn' t " tip-bot for Oleg Nesterov
  2 siblings, 0 replies; 4+ messages in thread
From: Kirill Tkhai @ 2015-09-10 13:31 UTC (permalink / raw)
  To: Oleg Nesterov
  Cc: Ingo Molnar, Peter Zijlstra, Kirill Tkhai, Srikar Dronamraju,
	linux-kernel



On 10.09.2015 16:07, Oleg Nesterov wrote:
> check_for_tasks() doesn't need to disable irqs, recursive read_lock()
> from interrupt is fine.
> 
> While at it, s/do_each_thread/for_each_process_thread/.
> 
> Signed-off-by: Oleg Nesterov <oleg@redhat.com>

Reviewed-by: Kirill Tkhai <ktkhai@odin.com>

> ---
>  kernel/cpu.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/kernel/cpu.c b/kernel/cpu.c
> index 94bbe46..24551f2 100644
> --- a/kernel/cpu.c
> +++ b/kernel/cpu.c
> @@ -302,8 +302,8 @@ static inline void check_for_tasks(int dead_cpu)
>  {
>  	struct task_struct *g, *p;
>  
> -	read_lock_irq(&tasklist_lock);
> -	do_each_thread(g, p) {
> +	read_lock(&tasklist_lock);
> +	for_each_process_thread(g, p) {
>  		if (!p->on_rq)
>  			continue;
>  		/*
> @@ -318,8 +318,8 @@ static inline void check_for_tasks(int dead_cpu)
>  
>  		pr_warn("Task %s (pid=%d) is on cpu %d (state=%ld, flags=%x)\n",
>  			p->comm, task_pid_nr(p), dead_cpu, p->state, p->flags);
> -	} while_each_thread(g, p);
> -	read_unlock_irq(&tasklist_lock);
> +	}
> +	read_unlock(&tasklist_lock);
>  }
>  
>  struct take_cpu_down_param {
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] check_for_tasks: read_lock(tasklist_lock) doesn't need to disable irqs
  2015-09-10 13:07 [PATCH] check_for_tasks: read_lock(tasklist_lock) doesn't need to disable irqs Oleg Nesterov
  2015-09-10 13:31 ` Kirill Tkhai
@ 2015-09-11 10:24 ` Srikar Dronamraju
  2015-09-13 10:56 ` [tip:sched/core] cpu/hotplug: Read_lock(tasklist_lock) doesn' t " tip-bot for Oleg Nesterov
  2 siblings, 0 replies; 4+ messages in thread
From: Srikar Dronamraju @ 2015-09-11 10:24 UTC (permalink / raw)
  To: Oleg Nesterov; +Cc: Ingo Molnar, Peter Zijlstra, Kirill Tkhai, linux-kernel

* Oleg Nesterov <oleg@redhat.com> [2015-09-10 15:07:50]:

> check_for_tasks() doesn't need to disable irqs, recursive read_lock()
> from interrupt is fine.
> 
> While at it, s/do_each_thread/for_each_process_thread/.
> 
> Signed-off-by: Oleg Nesterov <oleg@redhat.com>

Looks good to me.

Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>

> ---
>  kernel/cpu.c |    8 ++++----
>  1 files changed, 4 insertions(+), 4 deletions(-)
> 

-- 
Thanks and Regards
Srikar Dronamraju


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [tip:sched/core] cpu/hotplug: Read_lock(tasklist_lock) doesn' t need to disable irqs
  2015-09-10 13:07 [PATCH] check_for_tasks: read_lock(tasklist_lock) doesn't need to disable irqs Oleg Nesterov
  2015-09-10 13:31 ` Kirill Tkhai
  2015-09-11 10:24 ` Srikar Dronamraju
@ 2015-09-13 10:56 ` tip-bot for Oleg Nesterov
  2 siblings, 0 replies; 4+ messages in thread
From: tip-bot for Oleg Nesterov @ 2015-09-13 10:56 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: peterz, ktkhai, srikar, ktkhai, tglx, mingo, oleg, hpa,
	linux-kernel, torvalds

Commit-ID:  a75a6068dac25d4022ebcd82192ed6345407843c
Gitweb:     http://git.kernel.org/tip/a75a6068dac25d4022ebcd82192ed6345407843c
Author:     Oleg Nesterov <oleg@redhat.com>
AuthorDate: Thu, 10 Sep 2015 15:07:50 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Sat, 12 Sep 2015 11:54:27 +0200

cpu/hotplug: Read_lock(tasklist_lock) doesn't need to disable irqs

check_for_tasks() doesn't need to disable irqs, recursive
read_lock() from interrupt is fine.

While at it, s/do_each_thread/for_each_process_thread/.

Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Reviewed-by: Kirill Tkhai <ktkhai@odin.com>
Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Kirill Tkhai <ktkhai@parallels.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20150910130750.GA20055@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 kernel/cpu.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/kernel/cpu.c b/kernel/cpu.c
index 82cf9df..050c634 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -304,8 +304,8 @@ static inline void check_for_tasks(int dead_cpu)
 {
 	struct task_struct *g, *p;
 
-	read_lock_irq(&tasklist_lock);
-	do_each_thread(g, p) {
+	read_lock(&tasklist_lock);
+	for_each_process_thread(g, p) {
 		if (!p->on_rq)
 			continue;
 		/*
@@ -320,8 +320,8 @@ static inline void check_for_tasks(int dead_cpu)
 
 		pr_warn("Task %s (pid=%d) is on cpu %d (state=%ld, flags=%x)\n",
 			p->comm, task_pid_nr(p), dead_cpu, p->state, p->flags);
-	} while_each_thread(g, p);
-	read_unlock_irq(&tasklist_lock);
+	}
+	read_unlock(&tasklist_lock);
 }
 
 struct take_cpu_down_param {

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-09-13 10:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-10 13:07 [PATCH] check_for_tasks: read_lock(tasklist_lock) doesn't need to disable irqs Oleg Nesterov
2015-09-10 13:31 ` Kirill Tkhai
2015-09-11 10:24 ` Srikar Dronamraju
2015-09-13 10:56 ` [tip:sched/core] cpu/hotplug: Read_lock(tasklist_lock) doesn' t " tip-bot for Oleg Nesterov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.