linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Fix: membarrier: add missing preempt off around smp_call_function_many
@ 2017-12-15 19:23 Mathieu Desnoyers
  2017-12-20 15:02 ` Mathieu Desnoyers
  2018-01-10  7:54 ` [tip:sched/urgent] membarrier: Disable preemption when calling smp_call_function_many() tip-bot for Mathieu Desnoyers
  0 siblings, 2 replies; 5+ messages in thread
From: Mathieu Desnoyers @ 2017-12-15 19:23 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, Mathieu Desnoyers, Peter Zijlstra,
	Paul E . McKenney, Boqun Feng, Andrew Hunter, Maged Michael,
	Avi Kivity, Benjamin Herrenschmidt, Paul Mackerras,
	Michael Ellerman, Dave Watson, Thomas Gleixner, Ingo Molnar,
	H. Peter Anvin, Andrea Parri, # v4 . 14

smp_call_function_many requires disabling preemption around the call.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
CC: Linus Torvalds <torvalds@linux-foundation.org>
CC: Peter Zijlstra <peterz@infradead.org>
CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
CC: Boqun Feng <boqun.feng@gmail.com>
CC: Andrew Hunter <ahh@google.com>
CC: Maged Michael <maged.michael@gmail.com>
CC: Avi Kivity <avi@scylladb.com>
CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Paul Mackerras <paulus@samba.org>
CC: Michael Ellerman <mpe@ellerman.id.au>
CC: Dave Watson <davejwatson@fb.com>
CC: Thomas Gleixner <tglx@linutronix.de>
CC: Ingo Molnar <mingo@redhat.com>
CC: "H. Peter Anvin" <hpa@zytor.com>
CC: Andrea Parri <parri.andrea@gmail.com>
CC: <stable@vger.kernel.org>	# v4.14
---
 kernel/sched/membarrier.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/sched/membarrier.c b/kernel/sched/membarrier.c
index dd7908743dab..9bcbacba82a8 100644
--- a/kernel/sched/membarrier.c
+++ b/kernel/sched/membarrier.c
@@ -89,7 +89,9 @@ static int membarrier_private_expedited(void)
 		rcu_read_unlock();
 	}
 	if (!fallback) {
+		preempt_disable();
 		smp_call_function_many(tmpmask, ipi_mb, NULL, 1);
+		preempt_enable();
 		free_cpumask_var(tmpmask);
 	}
 	cpus_read_unlock();
-- 
2.11.0

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

* Re: [PATCH] Fix: membarrier: add missing preempt off around smp_call_function_many
  2017-12-15 19:23 [PATCH] Fix: membarrier: add missing preempt off around smp_call_function_many Mathieu Desnoyers
@ 2017-12-20 15:02 ` Mathieu Desnoyers
  2018-01-09 23:14   ` Mathieu Desnoyers
  2018-01-10  7:54 ` [tip:sched/urgent] membarrier: Disable preemption when calling smp_call_function_many() tip-bot for Mathieu Desnoyers
  1 sibling, 1 reply; 5+ messages in thread
From: Mathieu Desnoyers @ 2017-12-20 15:02 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, Peter Zijlstra, Paul E. McKenney, Boqun Feng,
	Andrew Hunter, maged michael, Avi Kivity, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Dave Watson, Thomas Gleixner,
	Ingo Molnar, H. Peter Anvin, Andrea Parri, stable

Hi Linus, Peter, Ingo,

Now that membarrier.c has been moved from kernel/ to kernel/sched/, should
I route this membarrier fix through the scheduler maintainers, or is it OK
to send it to you directly ?

Thanks,

Mathieu

----- On Dec 15, 2017, at 2:23 PM, Mathieu Desnoyers mathieu.desnoyers@efficios.com wrote:

> smp_call_function_many requires disabling preemption around the call.
> 
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> CC: Linus Torvalds <torvalds@linux-foundation.org>
> CC: Peter Zijlstra <peterz@infradead.org>
> CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> CC: Boqun Feng <boqun.feng@gmail.com>
> CC: Andrew Hunter <ahh@google.com>
> CC: Maged Michael <maged.michael@gmail.com>
> CC: Avi Kivity <avi@scylladb.com>
> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> CC: Paul Mackerras <paulus@samba.org>
> CC: Michael Ellerman <mpe@ellerman.id.au>
> CC: Dave Watson <davejwatson@fb.com>
> CC: Thomas Gleixner <tglx@linutronix.de>
> CC: Ingo Molnar <mingo@redhat.com>
> CC: "H. Peter Anvin" <hpa@zytor.com>
> CC: Andrea Parri <parri.andrea@gmail.com>
> CC: <stable@vger.kernel.org>	# v4.14
> ---
> kernel/sched/membarrier.c | 2 ++
> 1 file changed, 2 insertions(+)
> 
> diff --git a/kernel/sched/membarrier.c b/kernel/sched/membarrier.c
> index dd7908743dab..9bcbacba82a8 100644
> --- a/kernel/sched/membarrier.c
> +++ b/kernel/sched/membarrier.c
> @@ -89,7 +89,9 @@ static int membarrier_private_expedited(void)
> 		rcu_read_unlock();
> 	}
> 	if (!fallback) {
> +		preempt_disable();
> 		smp_call_function_many(tmpmask, ipi_mb, NULL, 1);
> +		preempt_enable();
> 		free_cpumask_var(tmpmask);
> 	}
> 	cpus_read_unlock();
> --
> 2.11.0

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

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

* Re: [PATCH] Fix: membarrier: add missing preempt off around smp_call_function_many
  2017-12-20 15:02 ` Mathieu Desnoyers
@ 2018-01-09 23:14   ` Mathieu Desnoyers
  2018-01-10  7:43     ` Ingo Molnar
  0 siblings, 1 reply; 5+ messages in thread
From: Mathieu Desnoyers @ 2018-01-09 23:14 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, Peter Zijlstra, Paul E. McKenney, Boqun Feng,
	Andrew Hunter, maged michael, Avi Kivity, Benjamin Herrenschmidt,
	Paul Mackerras, Michael Ellerman, Dave Watson, Thomas Gleixner,
	Ingo Molnar, H. Peter Anvin, Andrea Parri, stable

Hi Linus,

Can you pick up this straightforward fix please ? Let me know whether
I need to re-send the patch if for some reason the original post is
too far back in your inbox.

Thanks,

Mathieu

----- On Dec 20, 2017, at 10:02 AM, Mathieu Desnoyers mathieu.desnoyers@efficios.com wrote:

> Hi Linus, Peter, Ingo,
> 
> Now that membarrier.c has been moved from kernel/ to kernel/sched/, should
> I route this membarrier fix through the scheduler maintainers, or is it OK
> to send it to you directly ?
> 
> Thanks,
> 
> Mathieu
> 
> ----- On Dec 15, 2017, at 2:23 PM, Mathieu Desnoyers
> mathieu.desnoyers@efficios.com wrote:
> 
>> smp_call_function_many requires disabling preemption around the call.
>> 
>> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
>> CC: Linus Torvalds <torvalds@linux-foundation.org>
>> CC: Peter Zijlstra <peterz@infradead.org>
>> CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
>> CC: Boqun Feng <boqun.feng@gmail.com>
>> CC: Andrew Hunter <ahh@google.com>
>> CC: Maged Michael <maged.michael@gmail.com>
>> CC: Avi Kivity <avi@scylladb.com>
>> CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
>> CC: Paul Mackerras <paulus@samba.org>
>> CC: Michael Ellerman <mpe@ellerman.id.au>
>> CC: Dave Watson <davejwatson@fb.com>
>> CC: Thomas Gleixner <tglx@linutronix.de>
>> CC: Ingo Molnar <mingo@redhat.com>
>> CC: "H. Peter Anvin" <hpa@zytor.com>
>> CC: Andrea Parri <parri.andrea@gmail.com>
>> CC: <stable@vger.kernel.org>	# v4.14
>> ---
>> kernel/sched/membarrier.c | 2 ++
>> 1 file changed, 2 insertions(+)
>> 
>> diff --git a/kernel/sched/membarrier.c b/kernel/sched/membarrier.c
>> index dd7908743dab..9bcbacba82a8 100644
>> --- a/kernel/sched/membarrier.c
>> +++ b/kernel/sched/membarrier.c
>> @@ -89,7 +89,9 @@ static int membarrier_private_expedited(void)
>> 		rcu_read_unlock();
>> 	}
>> 	if (!fallback) {
>> +		preempt_disable();
>> 		smp_call_function_many(tmpmask, ipi_mb, NULL, 1);
>> +		preempt_enable();
>> 		free_cpumask_var(tmpmask);
>> 	}
>> 	cpus_read_unlock();
>> --
>> 2.11.0
> 
> --
> Mathieu Desnoyers
> EfficiOS Inc.
> http://www.efficios.com

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com

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

* Re: [PATCH] Fix: membarrier: add missing preempt off around smp_call_function_many
  2018-01-09 23:14   ` Mathieu Desnoyers
@ 2018-01-10  7:43     ` Ingo Molnar
  0 siblings, 0 replies; 5+ messages in thread
From: Ingo Molnar @ 2018-01-10  7:43 UTC (permalink / raw)
  To: Mathieu Desnoyers
  Cc: Linus Torvalds, linux-kernel, Peter Zijlstra, Paul E. McKenney,
	Boqun Feng, Andrew Hunter, maged michael, Avi Kivity,
	Benjamin Herrenschmidt, Paul Mackerras, Michael Ellerman,
	Dave Watson, Thomas Gleixner, Ingo Molnar, H. Peter Anvin,
	Andrea Parri, stable


* Mathieu Desnoyers <mathieu.desnoyers@efficios.com> wrote:

> Hi Linus,
> 
> Can you pick up this straightforward fix please ? Let me know whether
> I need to re-send the patch if for some reason the original post is
> too far back in your inbox.

The fix looks much more reasonable than previous attempts: I'll pick it up into 
tip:sched/urgent and send it Linuswards.

Thanks,

	Ingo

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

* [tip:sched/urgent] membarrier: Disable preemption when calling smp_call_function_many()
  2017-12-15 19:23 [PATCH] Fix: membarrier: add missing preempt off around smp_call_function_many Mathieu Desnoyers
  2017-12-20 15:02 ` Mathieu Desnoyers
@ 2018-01-10  7:54 ` tip-bot for Mathieu Desnoyers
  1 sibling, 0 replies; 5+ messages in thread
From: tip-bot for Mathieu Desnoyers @ 2018-01-10  7:54 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: paulmck, benh, mingo, parri.andrea, torvalds, davejwatson, hpa,
	maged.michael, ahh, mpe, linux-kernel, peterz, tglx, paulus,
	boqun.feng, mathieu.desnoyers, avi

Commit-ID:  541676078b52f365f53d46ee5517d305cd1b6350
Gitweb:     https://git.kernel.org/tip/541676078b52f365f53d46ee5517d305cd1b6350
Author:     Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
AuthorDate: Fri, 15 Dec 2017 14:23:10 -0500
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 10 Jan 2018 08:50:31 +0100

membarrier: Disable preemption when calling smp_call_function_many()

smp_call_function_many() requires disabling preemption around the call.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: <stable@vger.kernel.org> # v4.14+
Cc: Andrea Parri <parri.andrea@gmail.com>
Cc: Andrew Hunter <ahh@google.com>
Cc: Avi Kivity <avi@scylladb.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Dave Watson <davejwatson@fb.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Maged Michael <maged.michael@gmail.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul E . McKenney <paulmck@linux.vnet.ibm.com>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20171215192310.25293-1-mathieu.desnoyers@efficios.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 kernel/sched/membarrier.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/kernel/sched/membarrier.c b/kernel/sched/membarrier.c
index dd79087..9bcbacb 100644
--- a/kernel/sched/membarrier.c
+++ b/kernel/sched/membarrier.c
@@ -89,7 +89,9 @@ static int membarrier_private_expedited(void)
 		rcu_read_unlock();
 	}
 	if (!fallback) {
+		preempt_disable();
 		smp_call_function_many(tmpmask, ipi_mb, NULL, 1);
+		preempt_enable();
 		free_cpumask_var(tmpmask);
 	}
 	cpus_read_unlock();

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

end of thread, other threads:[~2018-01-10  8:04 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-15 19:23 [PATCH] Fix: membarrier: add missing preempt off around smp_call_function_many Mathieu Desnoyers
2017-12-20 15:02 ` Mathieu Desnoyers
2018-01-09 23:14   ` Mathieu Desnoyers
2018-01-10  7:43     ` Ingo Molnar
2018-01-10  7:54 ` [tip:sched/urgent] membarrier: Disable preemption when calling smp_call_function_many() tip-bot for Mathieu Desnoyers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).