From: Mathieu Desnoyers <mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
To: Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
Cc: "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>,
Chris Lameter <cl-vYTEC60ixJUAvxtiuMwx3w@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-5wv7dgnIgG8@public.gmane.org>,
Will Deacon <will>
Subject: Re: [RFC PATCH for 4.15 v3 15/22] rseq: selftests: Provide self-tests
Date: Fri, 24 Nov 2017 14:15:43 +0000 (UTC) [thread overview]
Message-ID: <1492925582.21712.1511532943476.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <20171123085721.bzburngdsatgewjo-Nxj+rRp3nVydTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
----- On Nov 23, 2017, at 3:57 AM, Peter Zijlstra peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org wrote:
> On Thu, Nov 23, 2017 at 09:55:11AM +0100, Peter Zijlstra wrote:
>> On Tue, Nov 21, 2017 at 09:18:53AM -0500, Mathieu Desnoyers wrote:
>> > +static inline __attribute__((always_inline))
>> > +int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv,
>> > + int cpu)
>> > +{
>> > + __asm__ __volatile__ goto (
>> > + RSEQ_ASM_DEFINE_TABLE(3, __rseq_table, 0x0, 0x0, 1f, 2f-1f, 4f)
>> > + RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
>>
>> > + RSEQ_ASM_CMP_CPU_ID(cpu_id, current_cpu_id, 4f)
>
>> > + "cmpq %[v], %[expect]\n\t"
>> > + "jnz 5f\n\t"
>
> Also, I'm confused between the abort and cmpfail cases.
>
> In would expect the cpu_id compare to also result in cmpfail, that is, I
> would only expect the kernel to result in abort.
Let's take the per-cpu spinlock as an example to explain why we need
the "compare fail" and "cpu_id compare fail" to return different
values.
Getting this lock involves doing:
cpu = rseq_cpu_start();
ret = rseq_cmpeqv_storev(&lock->c[cpu].v, 0, 1, cpu);
Now based on the "ret" value:
if ret == 0, it means that @v was indeed 0, and that rseq
executed the commit (stored 1).
if ret > 0, it means the comparison of @v against 0 failed,
which means the lock was already held. We therefore need to
postpone and retry later. A "try_lock" operation would return
that the lock is currently busy.
if ret < 0, then we have either been aborted by the kernel,
or the comparison of @cpu against cpu_id failed. If we think
about it, having @cpu != cpu_id will happen if we are migrated
before we enter the rseq critical section, which is pretty
similar to being aborted by the kernel within the critical
section. So I don't see any reason for making the branch target
of the cpu_id comparison anything else than the abort_ip. In
that situation, the caller needs to either re-try with an
updated @cpu value (except for multi-part algorithms e.g.
reserve+commit, which don't allow changing the @cpu number on
commit), or use cpu_opv to perform the operation.
Note that another cause why the @cpu == cpu_id test may fail is
if rseq is not registered for the current thread. Again, just
branching to the abort_ip and letting the caller fallback to
cpu_opv solves this.
>
>> > + /* final store */
>> > + "movq %[newv], %[v]\n\t"
>> > + "2:\n\t"
>> > + RSEQ_ASM_DEFINE_ABORT(4, __rseq_failure, RSEQ_SIG, "", abort)
>> > + RSEQ_ASM_DEFINE_CMPFAIL(5, __rseq_failure, "", cmpfail)
>> > + : /* gcc asm goto does not allow outputs */
>> > + : [cpu_id]"r"(cpu),
>> > + [current_cpu_id]"m"(__rseq_abi.cpu_id),
>> > + [rseq_cs]"m"(__rseq_abi.rseq_cs),
>> > + [v]"m"(*v),
>> > + [expect]"r"(expect),
>> > + [newv]"r"(newv)
>> > + : "memory", "cc", "rax"
>> > + : abort, cmpfail
>> > + );
>> > + return 0;
>> > +abort:
>> > + return -1;
>
> Which then would suggest this be -EINTR or something like that.
I'm not so sure returning kernel error codes is the expected
practice for user-space libraries.
Thoughts ?
Thanks!
Mathieu
>
>> > +cmpfail:
>> > + return 1;
> > > +}
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
WARNING: multiple messages have this Message-ID (diff)
From: mathieu.desnoyers at efficios.com (Mathieu Desnoyers)
Subject: [Linux-kselftest-mirror] [RFC PATCH for 4.15 v3 15/22] rseq: selftests: Provide self-tests
Date: Fri, 24 Nov 2017 14:15:43 +0000 (UTC) [thread overview]
Message-ID: <1492925582.21712.1511532943476.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <20171123085721.bzburngdsatgewjo@hirez.programming.kicks-ass.net>
----- On Nov 23, 2017, at 3:57 AM, Peter Zijlstra peterz at infradead.org wrote:
> On Thu, Nov 23, 2017 at 09:55:11AM +0100, Peter Zijlstra wrote:
>> On Tue, Nov 21, 2017 at 09:18:53AM -0500, Mathieu Desnoyers wrote:
>> > +static inline __attribute__((always_inline))
>> > +int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv,
>> > + int cpu)
>> > +{
>> > + __asm__ __volatile__ goto (
>> > + RSEQ_ASM_DEFINE_TABLE(3, __rseq_table, 0x0, 0x0, 1f, 2f-1f, 4f)
>> > + RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
>>
>> > + RSEQ_ASM_CMP_CPU_ID(cpu_id, current_cpu_id, 4f)
>
>> > + "cmpq %[v], %[expect]\n\t"
>> > + "jnz 5f\n\t"
>
> Also, I'm confused between the abort and cmpfail cases.
>
> In would expect the cpu_id compare to also result in cmpfail, that is, I
> would only expect the kernel to result in abort.
Let's take the per-cpu spinlock as an example to explain why we need
the "compare fail" and "cpu_id compare fail" to return different
values.
Getting this lock involves doing:
cpu = rseq_cpu_start();
ret = rseq_cmpeqv_storev(&lock->c[cpu].v, 0, 1, cpu);
Now based on the "ret" value:
if ret == 0, it means that @v was indeed 0, and that rseq
executed the commit (stored 1).
if ret > 0, it means the comparison of @v against 0 failed,
which means the lock was already held. We therefore need to
postpone and retry later. A "try_lock" operation would return
that the lock is currently busy.
if ret < 0, then we have either been aborted by the kernel,
or the comparison of @cpu against cpu_id failed. If we think
about it, having @cpu != cpu_id will happen if we are migrated
before we enter the rseq critical section, which is pretty
similar to being aborted by the kernel within the critical
section. So I don't see any reason for making the branch target
of the cpu_id comparison anything else than the abort_ip. In
that situation, the caller needs to either re-try with an
updated @cpu value (except for multi-part algorithms e.g.
reserve+commit, which don't allow changing the @cpu number on
commit), or use cpu_opv to perform the operation.
Note that another cause why the @cpu == cpu_id test may fail is
if rseq is not registered for the current thread. Again, just
branching to the abort_ip and letting the caller fallback to
cpu_opv solves this.
>
>> > + /* final store */
>> > + "movq %[newv], %[v]\n\t"
>> > + "2:\n\t"
>> > + RSEQ_ASM_DEFINE_ABORT(4, __rseq_failure, RSEQ_SIG, "", abort)
>> > + RSEQ_ASM_DEFINE_CMPFAIL(5, __rseq_failure, "", cmpfail)
>> > + : /* gcc asm goto does not allow outputs */
>> > + : [cpu_id]"r"(cpu),
>> > + [current_cpu_id]"m"(__rseq_abi.cpu_id),
>> > + [rseq_cs]"m"(__rseq_abi.rseq_cs),
>> > + [v]"m"(*v),
>> > + [expect]"r"(expect),
>> > + [newv]"r"(newv)
>> > + : "memory", "cc", "rax"
>> > + : abort, cmpfail
>> > + );
>> > + return 0;
>> > +abort:
>> > + return -1;
>
> Which then would suggest this be -EINTR or something like that.
I'm not so sure returning kernel error codes is the expected
practice for user-space libraries.
Thoughts ?
Thanks!
Mathieu
>
>> > +cmpfail:
>> > + return 1;
> > > +}
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: mathieu.desnoyers@efficios.com (Mathieu Desnoyers)
Subject: [Linux-kselftest-mirror] [RFC PATCH for 4.15 v3 15/22] rseq: selftests: Provide self-tests
Date: Fri, 24 Nov 2017 14:15:43 +0000 (UTC) [thread overview]
Message-ID: <1492925582.21712.1511532943476.JavaMail.zimbra@efficios.com> (raw)
Message-ID: <20171124141543.f2HfklSmZAcuMCoklA3zax07qHGjY59E-guyLxL8pGw@z> (raw)
In-Reply-To: <20171123085721.bzburngdsatgewjo@hirez.programming.kicks-ass.net>
----- On Nov 23, 2017,@3:57 AM, Peter Zijlstra peterz@infradead.org wrote:
> On Thu, Nov 23, 2017@09:55:11AM +0100, Peter Zijlstra wrote:
>> On Tue, Nov 21, 2017@09:18:53AM -0500, Mathieu Desnoyers wrote:
>> > +static inline __attribute__((always_inline))
>> > +int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv,
>> > + int cpu)
>> > +{
>> > + __asm__ __volatile__ goto (
>> > + RSEQ_ASM_DEFINE_TABLE(3, __rseq_table, 0x0, 0x0, 1f, 2f-1f, 4f)
>> > + RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
>>
>> > + RSEQ_ASM_CMP_CPU_ID(cpu_id, current_cpu_id, 4f)
>
>> > + "cmpq %[v], %[expect]\n\t"
>> > + "jnz 5f\n\t"
>
> Also, I'm confused between the abort and cmpfail cases.
>
> In would expect the cpu_id compare to also result in cmpfail, that is, I
> would only expect the kernel to result in abort.
Let's take the per-cpu spinlock as an example to explain why we need
the "compare fail" and "cpu_id compare fail" to return different
values.
Getting this lock involves doing:
cpu = rseq_cpu_start();
ret = rseq_cmpeqv_storev(&lock->c[cpu].v, 0, 1, cpu);
Now based on the "ret" value:
if ret == 0, it means that @v was indeed 0, and that rseq
executed the commit (stored 1).
if ret > 0, it means the comparison of @v against 0 failed,
which means the lock was already held. We therefore need to
postpone and retry later. A "try_lock" operation would return
that the lock is currently busy.
if ret < 0, then we have either been aborted by the kernel,
or the comparison of @cpu against cpu_id failed. If we think
about it, having @cpu != cpu_id will happen if we are migrated
before we enter the rseq critical section, which is pretty
similar to being aborted by the kernel within the critical
section. So I don't see any reason for making the branch target
of the cpu_id comparison anything else than the abort_ip. In
that situation, the caller needs to either re-try with an
updated @cpu value (except for multi-part algorithms e.g.
reserve+commit, which don't allow changing the @cpu number on
commit), or use cpu_opv to perform the operation.
Note that another cause why the @cpu == cpu_id test may fail is
if rseq is not registered for the current thread. Again, just
branching to the abort_ip and letting the caller fallback to
cpu_opv solves this.
>
>> > + /* final store */
>> > + "movq %[newv], %[v]\n\t"
>> > + "2:\n\t"
>> > + RSEQ_ASM_DEFINE_ABORT(4, __rseq_failure, RSEQ_SIG, "", abort)
>> > + RSEQ_ASM_DEFINE_CMPFAIL(5, __rseq_failure, "", cmpfail)
>> > + : /* gcc asm goto does not allow outputs */
>> > + : [cpu_id]"r"(cpu),
>> > + [current_cpu_id]"m"(__rseq_abi.cpu_id),
>> > + [rseq_cs]"m"(__rseq_abi.rseq_cs),
>> > + [v]"m"(*v),
>> > + [expect]"r"(expect),
>> > + [newv]"r"(newv)
>> > + : "memory", "cc", "rax"
>> > + : abort, cmpfail
>> > + );
>> > + return 0;
>> > +abort:
>> > + return -1;
>
> Which then would suggest this be -EINTR or something like that.
I'm not so sure returning kernel error codes is the expected
practice for user-space libraries.
Thoughts ?
Thanks!
Mathieu
>
>> > +cmpfail:
>> > + return 1;
> > > +}
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: "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>,
Chris Lameter <cl@linux.com>, 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>,
shuah <shuah@kernel.org>,
linux-kselftest <linux-kselftest@vger.kernel.org>
Subject: Re: [RFC PATCH for 4.15 v3 15/22] rseq: selftests: Provide self-tests
Date: Fri, 24 Nov 2017 14:15:43 +0000 (UTC) [thread overview]
Message-ID: <1492925582.21712.1511532943476.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <20171123085721.bzburngdsatgewjo@hirez.programming.kicks-ass.net>
----- On Nov 23, 2017, at 3:57 AM, Peter Zijlstra peterz@infradead.org wrote:
> On Thu, Nov 23, 2017 at 09:55:11AM +0100, Peter Zijlstra wrote:
>> On Tue, Nov 21, 2017 at 09:18:53AM -0500, Mathieu Desnoyers wrote:
>> > +static inline __attribute__((always_inline))
>> > +int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv,
>> > + int cpu)
>> > +{
>> > + __asm__ __volatile__ goto (
>> > + RSEQ_ASM_DEFINE_TABLE(3, __rseq_table, 0x0, 0x0, 1f, 2f-1f, 4f)
>> > + RSEQ_ASM_STORE_RSEQ_CS(1, 3b, rseq_cs)
>>
>> > + RSEQ_ASM_CMP_CPU_ID(cpu_id, current_cpu_id, 4f)
>
>> > + "cmpq %[v], %[expect]\n\t"
>> > + "jnz 5f\n\t"
>
> Also, I'm confused between the abort and cmpfail cases.
>
> In would expect the cpu_id compare to also result in cmpfail, that is, I
> would only expect the kernel to result in abort.
Let's take the per-cpu spinlock as an example to explain why we need
the "compare fail" and "cpu_id compare fail" to return different
values.
Getting this lock involves doing:
cpu = rseq_cpu_start();
ret = rseq_cmpeqv_storev(&lock->c[cpu].v, 0, 1, cpu);
Now based on the "ret" value:
if ret == 0, it means that @v was indeed 0, and that rseq
executed the commit (stored 1).
if ret > 0, it means the comparison of @v against 0 failed,
which means the lock was already held. We therefore need to
postpone and retry later. A "try_lock" operation would return
that the lock is currently busy.
if ret < 0, then we have either been aborted by the kernel,
or the comparison of @cpu against cpu_id failed. If we think
about it, having @cpu != cpu_id will happen if we are migrated
before we enter the rseq critical section, which is pretty
similar to being aborted by the kernel within the critical
section. So I don't see any reason for making the branch target
of the cpu_id comparison anything else than the abort_ip. In
that situation, the caller needs to either re-try with an
updated @cpu value (except for multi-part algorithms e.g.
reserve+commit, which don't allow changing the @cpu number on
commit), or use cpu_opv to perform the operation.
Note that another cause why the @cpu == cpu_id test may fail is
if rseq is not registered for the current thread. Again, just
branching to the abort_ip and letting the caller fallback to
cpu_opv solves this.
>
>> > + /* final store */
>> > + "movq %[newv], %[v]\n\t"
>> > + "2:\n\t"
>> > + RSEQ_ASM_DEFINE_ABORT(4, __rseq_failure, RSEQ_SIG, "", abort)
>> > + RSEQ_ASM_DEFINE_CMPFAIL(5, __rseq_failure, "", cmpfail)
>> > + : /* gcc asm goto does not allow outputs */
>> > + : [cpu_id]"r"(cpu),
>> > + [current_cpu_id]"m"(__rseq_abi.cpu_id),
>> > + [rseq_cs]"m"(__rseq_abi.rseq_cs),
>> > + [v]"m"(*v),
>> > + [expect]"r"(expect),
>> > + [newv]"r"(newv)
>> > + : "memory", "cc", "rax"
>> > + : abort, cmpfail
>> > + );
>> > + return 0;
>> > +abort:
>> > + return -1;
>
> Which then would suggest this be -EINTR or something like that.
I'm not so sure returning kernel error codes is the expected
practice for user-space libraries.
Thoughts ?
Thanks!
Mathieu
>
>> > +cmpfail:
>> > + return 1;
> > > +}
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
next prev parent reply other threads:[~2017-11-24 14:15 UTC|newest]
Thread overview: 175+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-21 14:18 [RFC PATCH for 4.15 v12 00/22] Restartable sequences and CPU op vector Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 01/22] uapi headers: Provide types_32_64.h Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 v12 02/22] rseq: Introduce restartable sequences system call Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 03/22] arm: Add restartable sequences support Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 04/22] arm: Wire up restartable sequences system call Mathieu Desnoyers
[not found] ` <20171121141900.18471-1-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-21 14:18 ` [RFC PATCH for 4.15 05/22] x86: Add support for restartable sequences Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 06/22] x86: Wire up restartable sequence system call Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 22:19 ` [PATCH update for 4.15 1/3] selftests: lib.mk: Introduce OVERRIDE_TARGETS Mathieu Desnoyers
2017-11-21 22:19 ` Mathieu Desnoyers
2017-11-21 22:19 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 22:19 ` mathieu.desnoyers
[not found] ` <20171121221933.25959-1-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-21 22:22 ` Mathieu Desnoyers
2017-11-21 22:22 ` Mathieu Desnoyers
2017-11-21 22:22 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 22:22 ` mathieu.desnoyers
2017-11-22 15:16 ` Shuah Khan
2017-11-22 15:16 ` Shuah Khan
2017-11-22 15:16 ` [Linux-kselftest-mirror] " Shuah Khan
2017-11-22 15:16 ` shuah
2017-11-21 22:19 ` [PATCH update for 4.15 2/3] cpu_opv: selftests: Implement selftests (v4) Mathieu Desnoyers
2017-11-21 22:19 ` Mathieu Desnoyers
2017-11-21 22:19 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 22:19 ` mathieu.desnoyers
[not found] ` <20171121221933.25959-2-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-22 15:20 ` Shuah Khan
2017-11-22 15:20 ` Shuah Khan
2017-11-22 15:20 ` [Linux-kselftest-mirror] " Shuah Khan
2017-11-22 15:20 ` shuah
2017-11-21 14:18 ` [RFC PATCH for 4.15 07/22] powerpc: Add support for restartable sequences Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 08/22] powerpc: Wire up restartable sequences system call Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 09/22] sched: Implement push_task_to_cpu Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 v4 10/22] cpu_opv: Provide cpu_opv system call Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 11/22] x86: Wire up " Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 12/22] powerpc: " Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 13/22] arm: " Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 v3 14/22] cpu_opv: selftests: Implement selftests Mathieu Desnoyers
2017-11-21 14:18 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 14:18 ` mathieu.desnoyers
[not found] ` <20171121141900.18471-15-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-21 15:17 ` Shuah Khan
2017-11-21 15:17 ` Shuah Khan
2017-11-21 15:17 ` [Linux-kselftest-mirror] " Shuah Khan
2017-11-21 15:17 ` shuah
[not found] ` <c311cd4b-4d8f-bfb5-3731-2cb2eefa4865-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-11-21 16:46 ` Mathieu Desnoyers
2017-11-21 16:46 ` Mathieu Desnoyers
2017-11-21 16:46 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 16:46 ` mathieu.desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 v3 15/22] rseq: selftests: Provide self-tests Mathieu Desnoyers
[not found] ` <20171121141900.18471-16-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-21 15:34 ` Shuah Khan
2017-11-21 15:34 ` Shuah Khan
2017-11-21 17:05 ` Mathieu Desnoyers
2017-11-21 17:05 ` Mathieu Desnoyers
2017-11-21 17:05 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 17:05 ` mathieu.desnoyers
2017-11-21 17:40 ` Shuah Khan
2017-11-21 17:40 ` Shuah Khan
2017-11-21 17:40 ` [Linux-kselftest-mirror] " Shuah Khan
2017-11-21 17:40 ` shuah
2017-11-21 21:22 ` Mathieu Desnoyers
2017-11-21 21:22 ` Mathieu Desnoyers
2017-11-21 21:22 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 21:22 ` mathieu.desnoyers
[not found] ` <911090321.19621.1511299340968.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-21 21:24 ` Shuah Khan
2017-11-21 21:24 ` Shuah Khan
2017-11-21 21:24 ` [Linux-kselftest-mirror] " Shuah Khan
2017-11-21 21:24 ` shuahkh
[not found] ` <d059d29d-83a7-f16d-dc84-05a4609a3479-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2017-11-21 21:44 ` Mathieu Desnoyers
2017-11-21 21:44 ` Mathieu Desnoyers
2017-11-21 21:44 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 21:44 ` mathieu.desnoyers
2017-11-22 19:38 ` Peter Zijlstra
2017-11-22 19:38 ` Peter Zijlstra
2017-11-22 19:38 ` [Linux-kselftest-mirror] " Peter Zijlstra
2017-11-22 19:38 ` peterz
[not found] ` <20171122193821.GJ3165-IIpfhp3q70x9+YH6RuovlLjjLBE8jN/0@public.gmane.org>
2017-11-23 21:16 ` Mathieu Desnoyers
2017-11-23 21:16 ` Mathieu Desnoyers
2017-11-23 21:16 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-23 21:16 ` mathieu.desnoyers
2017-11-22 21:48 ` Peter Zijlstra
2017-11-22 21:48 ` Peter Zijlstra
2017-11-22 21:48 ` [Linux-kselftest-mirror] " Peter Zijlstra
2017-11-22 21:48 ` peterz
[not found] ` <20171122214813.GK3165-IIpfhp3q70x9+YH6RuovlLjjLBE8jN/0@public.gmane.org>
2017-11-23 22:53 ` Mathieu Desnoyers
2017-11-23 22:53 ` Mathieu Desnoyers
2017-11-23 22:53 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-23 22:53 ` mathieu.desnoyers
2017-11-23 8:55 ` Peter Zijlstra
2017-11-23 8:55 ` Peter Zijlstra
2017-11-23 8:55 ` [Linux-kselftest-mirror] " Peter Zijlstra
2017-11-23 8:55 ` peterz
[not found] ` <20171123085511.ohwuobf5v32vggho-Nxj+rRp3nVydTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2017-11-23 8:57 ` Peter Zijlstra
2017-11-23 8:57 ` Peter Zijlstra
2017-11-23 8:57 ` [Linux-kselftest-mirror] " Peter Zijlstra
2017-11-23 8:57 ` peterz
[not found] ` <20171123085721.bzburngdsatgewjo-Nxj+rRp3nVydTX5a5knrm8zTDFooKrT+cvkQGrU6aU0@public.gmane.org>
2017-11-24 14:15 ` Mathieu Desnoyers [this message]
2017-11-24 14:15 ` Mathieu Desnoyers
2017-11-24 14:15 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-24 14:15 ` mathieu.desnoyers
2017-11-24 13:55 ` Mathieu Desnoyers
2017-11-24 13:55 ` Mathieu Desnoyers
2017-11-24 13:55 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-24 13:55 ` mathieu.desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 16/22] rseq: selftests: arm: workaround gcc asm size guess Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:18 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 14:18 ` mathieu.desnoyers
[not found] ` <20171121141900.18471-17-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-21 15:39 ` Shuah Khan
2017-11-21 15:39 ` Shuah Khan
2017-11-21 15:39 ` [Linux-kselftest-mirror] " Shuah Khan
2017-11-21 15:39 ` shuah
2017-11-21 14:18 ` [RFC PATCH for 4.15 17/22] Fix: membarrier: add missing preempt off around smp_call_function_many Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 18/22] membarrier: selftest: Test private expedited cmd Mathieu Desnoyers
2017-11-21 14:18 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 14:18 ` mathieu.desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 v7 19/22] powerpc: membarrier: Skip memory barrier in switch_mm() Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 v5 20/22] membarrier: Document scheduler barrier requirements Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:18 ` [RFC PATCH for 4.15 v2 21/22] membarrier: provide SHARED_EXPEDITED command Mathieu Desnoyers
2017-11-21 14:18 ` Mathieu Desnoyers
2017-11-21 14:19 ` [RFC PATCH for 4.15 22/22] membarrier: selftest: Test shared expedited cmd Mathieu Desnoyers
2017-11-21 14:19 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-21 14:19 ` mathieu.desnoyers
2017-11-21 14:19 ` Mathieu Desnoyers
2017-11-21 17:21 ` [RFC PATCH for 4.15 v12 00/22] Restartable sequences and CPU op vector Andi Kleen
2017-11-21 17:21 ` Andi Kleen
[not found] ` <20171121172144.GL2482-1g7Xle2YJi4/4alezvVtWx2eb7JE58TQ@public.gmane.org>
2017-11-21 22:05 ` Mathieu Desnoyers
2017-11-21 22:05 ` Mathieu Desnoyers
2017-11-22 15:28 ` Andy Lutomirski
2017-11-22 15:28 ` Andy Lutomirski
[not found] ` <CALCETrX84s-WEa5osP0t6CKh8C4Wj7-ARNMpaSp8Eop1_2ycLA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-11-22 16:43 ` Mathieu Desnoyers
2017-11-22 16:43 ` Mathieu Desnoyers
[not found] ` <718035530.20074.1511369023901.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-22 18:10 ` Andi Kleen
2017-11-22 18:10 ` Andi Kleen
[not found] ` <740195164.19702.1511301908907.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-21 22:59 ` Thomas Gleixner
2017-11-21 22:59 ` Thomas Gleixner
2017-11-22 12:36 ` Mathieu Desnoyers
2017-11-22 12:36 ` Mathieu Desnoyers
[not found] ` <809252084.19901.1511354219731.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-22 15:25 ` Thomas Gleixner
2017-11-22 15:25 ` Thomas Gleixner
2017-11-22 19:32 ` Peter Zijlstra
2017-11-22 19:32 ` Peter Zijlstra
2017-11-22 19:37 ` Will Deacon
2017-11-22 19:37 ` Will Deacon
[not found] ` <20171122193734.GO22648-5wv7dgnIgG8@public.gmane.org>
2017-11-23 21:15 ` Mathieu Desnoyers
2017-11-23 21:15 ` Mathieu Desnoyers
[not found] ` <165707648.21250.1511471721845.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-23 22:51 ` Thomas Gleixner
2017-11-23 22:51 ` Thomas Gleixner
2017-11-23 23:01 ` Mathieu Desnoyers
2017-11-23 23:01 ` Mathieu Desnoyers
[not found] ` <739755311.21380.1511478071883.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-23 23:38 ` Thomas Gleixner
2017-11-23 23:38 ` Thomas Gleixner
2017-11-24 0:04 ` Mathieu Desnoyers
2017-11-24 0:04 ` Mathieu Desnoyers
[not found] ` <1589826840.21401.1511481874141.JavaMail.zimbra-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-24 14:47 ` Thomas Gleixner
2017-11-24 14:47 ` Thomas Gleixner
2017-11-23 21:13 ` Mathieu Desnoyers
2017-11-23 21:13 ` Mathieu Desnoyers
2017-11-23 21:49 ` Andi Kleen
2017-11-23 21:49 ` Andi Kleen
2017-11-21 22:19 ` [PATCH update for 4.15 3/3] rseq: selftests: Provide self-tests (v4) Mathieu Desnoyers
[not found] ` <20171121221933.25959-3-mathieu.desnoyers-vg+e7yoeK/dWk0Htik3J/w@public.gmane.org>
2017-11-22 15:23 ` Shuah Khan
2017-11-22 15:23 ` Shuah Khan
2017-11-22 15:23 ` [Linux-kselftest-mirror] " Shuah Khan
2017-11-22 15:23 ` shuah
2017-11-22 16:31 ` Mathieu Desnoyers
2017-11-22 16:31 ` Mathieu Desnoyers
2017-11-22 16:31 ` [Linux-kselftest-mirror] " Mathieu Desnoyers
2017-11-22 16:31 ` 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=1492925582.21712.1511532943476.JavaMail.zimbra@efficios.com \
--to=mathieu.desnoyers-vg+e7yoek/dwk0htik3j/w@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-5wv7dgnIgG8@public.gmane.org \
--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=mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=paulmck-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org \
--cc=peterz-wEGCiKHe2LqWVfeAwA7xHQ@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.