From: Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
To: Christopher Lameter <cl-vYTEC60ixJUAvxtiuMwx3w@public.gmane.org>
Cc: Mathieu Desnoyers
<mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>,
"Paul E. McKenney"
<paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>,
Boqun Feng <boqun.feng-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Andy Lutomirski <luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org>,
Dave Watson <davejwatson-b10kYP2dOMg@public.gmane.org>,
linux-kernel
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
linux-api <linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Paul Turner <pjt-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Andrew Morton
<akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
Thomas Gleixner <tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>,
Ingo Molnar <mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
"H. Peter Anvin" <hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>,
Andrew Hunter <ahh-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Andi Kleen <andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org>,
Ben Maurer <bmaurer-b10kYP2dOMg@public.gmane.org>,
rostedt <rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org>,
Josh Triplett <josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org>,
Linus Torvalds
<torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org>,
Catalin Marinas <catalin.marinas@arm.c>
Subject: Re: [RFC PATCH for 4.16 02/21] rseq: Introduce restartable sequences system call (v12)
Date: Thu, 14 Dec 2017 20:48:53 +0100 [thread overview]
Message-ID: <20171214194853.GE3326@worktop> (raw)
In-Reply-To: <alpine.DEB.2.20.1712141238180.8340@nuc-kabylake>
On Thu, Dec 14, 2017 at 12:50:13PM -0600, Christopher Lameter wrote:
> Ultimately I wish fast increments like done by this_cpu_inc() could be
> implemented in an efficient way on non x86 platforms that do not have
> cheap instructions like that.
So the problem isn't migration; for that we could wrap the operation in
preempt_disable() which is not more expensive than rseq would be. And a
lot more deterministic.
The problem instead is interrupts, which can result in nested load-store
operations, and that comes apart. This then means having to disable
interrupts over these things and _that_ is expensive.
WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <peterz@infradead.org>
To: Christopher Lameter <cl@linux.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
Boqun Feng <boqun.feng@gmail.com>,
Andy Lutomirski <luto@amacapital.net>,
Dave Watson <davejwatson@fb.com>,
linux-kernel <linux-kernel@vger.kernel.org>,
linux-api <linux-api@vger.kernel.org>,
Paul Turner <pjt@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Russell King <linux@arm.linux.org.uk>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Andrew Hunter <ahh@google.com>, Andi Kleen <andi@firstfloor.org>,
Ben Maurer <bmaurer@fb.com>, rostedt <rostedt@goodmis.org>,
Josh Triplett <josh@joshtriplett.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will.deacon@arm.com>,
Michael Kerrisk <mtk.manpages@gmail.com>,
Alexander Viro <viro@zeniv.linux.org.uk>
Subject: Re: [RFC PATCH for 4.16 02/21] rseq: Introduce restartable sequences system call (v12)
Date: Thu, 14 Dec 2017 20:48:53 +0100 [thread overview]
Message-ID: <20171214194853.GE3326@worktop> (raw)
In-Reply-To: <alpine.DEB.2.20.1712141238180.8340@nuc-kabylake>
On Thu, Dec 14, 2017 at 12:50:13PM -0600, Christopher Lameter wrote:
> Ultimately I wish fast increments like done by this_cpu_inc() could be
> implemented in an efficient way on non x86 platforms that do not have
> cheap instructions like that.
So the problem isn't migration; for that we could wrap the operation in
preempt_disable() which is not more expensive than rseq would be. And a
lot more deterministic.
The problem instead is interrupts, which can result in nested load-store
operations, and that comes apart. This then means having to disable
interrupts over these things and _that_ is expensive.
next prev parent reply other threads:[~2017-12-14 19:48 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-14 16:13 [RFC PATCH for 4.16 00/21] Restartable sequences and CPU op vector Mathieu Desnoyers
2017-12-14 16:13 ` Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 01/21] uapi headers: Provide types_32_64.h Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 02/21] rseq: Introduce restartable sequences system call (v12) Mathieu Desnoyers
2017-12-14 16:44 ` Christopher Lameter
2017-12-14 16:44 ` Christopher Lameter
2017-12-14 18:12 ` Mathieu Desnoyers
2017-12-14 18:12 ` Mathieu Desnoyers
[not found] ` <12046460.34426.1513275177081.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-12-14 18:50 ` Christopher Lameter
2017-12-14 18:50 ` Christopher Lameter
2017-12-14 19:24 ` Mathieu Desnoyers
2017-12-14 19:24 ` Mathieu Desnoyers
2017-12-14 21:14 ` Christopher Lameter
2017-12-14 21:14 ` Christopher Lameter
2017-12-14 21:20 ` Peter Zijlstra
2017-12-14 21:20 ` Peter Zijlstra
2017-12-15 15:05 ` Christopher Lameter
2017-12-15 15:05 ` Christopher Lameter
2017-12-15 16:52 ` Mathieu Desnoyers
2017-12-15 16:52 ` Mathieu Desnoyers
[not found] ` <729438855.35910.1513356742518.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-12-15 17:13 ` Christopher Lameter
2017-12-15 17:13 ` Christopher Lameter
2017-12-14 19:48 ` Peter Zijlstra [this message]
2017-12-14 19:48 ` Peter Zijlstra
2017-12-14 19:57 ` Mathieu Desnoyers
2017-12-14 19:57 ` Mathieu Desnoyers
[not found] ` <1772818221.34575.1513281428902.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-12-14 20:09 ` Peter Zijlstra
2017-12-14 20:09 ` Peter Zijlstra
2017-12-14 16:13 ` [RFC PATCH for 4.16 03/21] arm: Add restartable sequences support Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 04/21] arm: Wire up restartable sequences system call Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 05/21] x86: Add support for restartable sequences Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 06/21] x86: Wire up restartable sequence system call Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 08/21] powerpc: Wire up restartable sequences " Mathieu Desnoyers
2017-12-14 16:13 ` Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 09/21] sched: Implement push_task_to_cpu Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 10/21] cpu_opv: Provide cpu_opv system call (v5) Mathieu Desnoyers
[not found] ` <20171214161403.30643-11-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2018-02-12 15:49 ` Mathieu Desnoyers
2018-02-12 15:49 ` Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 11/21] x86: Wire up cpu_opv system call Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 12/21] powerpc: " Mathieu Desnoyers
2017-12-14 16:13 ` Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 14/21] selftests: lib.mk: Introduce OVERRIDE_TARGETS Mathieu Desnoyers
2017-12-14 16:13 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-12-14 16:13 ` mathieu.desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 15/21] cpu_opv: selftests: Implement selftests (v6) Mathieu Desnoyers
2017-12-14 16:13 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-12-14 16:13 ` mathieu.desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 16/21] rseq: selftests: Provide rseq library (v5) Mathieu Desnoyers
2017-12-14 16:13 ` Mathieu Desnoyers
2017-12-14 16:13 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-12-14 16:13 ` mathieu.desnoyers
[not found] ` <20171214161403.30643-1-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-12-14 16:13 ` [RFC PATCH for 4.16 07/21] powerpc: Add support for restartable sequences Mathieu Desnoyers
2017-12-14 16:13 ` Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 13/21] arm: Wire up cpu_opv system call Mathieu Desnoyers
2017-12-14 16:13 ` Mathieu Desnoyers
2017-12-14 16:13 ` [RFC PATCH for 4.16 17/21] rseq: selftests: Provide percpu_op API Mathieu Desnoyers
2017-12-14 16:13 ` Mathieu Desnoyers
2017-12-14 16:13 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-12-14 16:13 ` mathieu.desnoyers
2017-12-14 16:14 ` [RFC PATCH for 4.16 18/21] rseq: selftests: Provide basic test Mathieu Desnoyers
2017-12-14 16:14 ` Mathieu Desnoyers
2017-12-14 16:14 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-12-14 16:14 ` mathieu.desnoyers
2017-12-14 16:14 ` [RFC PATCH for 4.16 19/21] rseq: selftests: Provide basic percpu ops test Mathieu Desnoyers
2017-12-14 16:14 ` Mathieu Desnoyers
2017-12-14 16:14 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-12-14 16:14 ` mathieu.desnoyers
2017-12-14 16:14 ` [RFC PATCH for 4.16 20/21] rseq: selftests: Provide parametrized tests Mathieu Desnoyers
2017-12-14 16:14 ` Mathieu Desnoyers
2017-12-14 16:14 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-12-14 16:14 ` mathieu.desnoyers
2017-12-14 16:14 ` [RFC PATCH for 4.16 21/21] rseq: selftests: Provide Makefile, scripts, gitignore Mathieu Desnoyers
2017-12-14 16:14 ` Mathieu Desnoyers
2017-12-14 16:14 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-12-14 16:14 ` mathieu.desnoyers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171214194853.GE3326@worktop \
--to=peterz-wegcikhe2lqwvfeawa7xhq@public.gmane.org \
--cc=ahh-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org \
--cc=bmaurer-b10kYP2dOMg@public.gmane.org \
--cc=boqun.feng-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=catalin.marinas@arm.c \
--cc=cl-vYTEC60ixJUAvxtiuMwx3w@public.gmane.org \
--cc=davejwatson-b10kYP2dOMg@public.gmane.org \
--cc=hpa-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org \
--cc=josh-iaAMLnmF4UmaiuxdJuQwMA@public.gmane.org \
--cc=linux-api-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=luto-kltTT9wpgjJwATOyAt5JVQ@public.gmane.org \
--cc=mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org \
--cc=mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=pjt-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=rostedt-nx8X9YLhiw1AfugRpC6u6w@public.gmane.org \
--cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
--cc=torvalds-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.