All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: shuah <shuah@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
	"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 <cata>
Subject: Re: [PATCH update for 4.15 3/3] rseq: selftests: Provide self-tests (v4)
Date: Wed, 22 Nov 2017 16:31:51 +0000 (UTC)	[thread overview]
Message-ID: <461615779.20063.1511368311925.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <c207283b-5256-1507-a1d9-b40e6f326e97@kernel.org>

----- On Nov 22, 2017, at 10:23 AM, shuah shuah@kernel.org wrote:

> On 11/21/2017 03:19 PM, Mathieu Desnoyers wrote:
>> Implements two basic tests of RSEQ functionality, and one more
>> exhaustive parameterizable test.
>> 
>> The first, "basic_test" only asserts that RSEQ works moderately
>> correctly. E.g. that the CPUID pointer works.
>> 
>> "basic_percpu_ops_test" is a slightly more "realistic" variant,
>> implementing a few simple per-cpu operations and testing their
>> correctness.
>> 
>> "param_test" is a parametrizable restartable sequences test. See
>> the "--help" output for usage.
>> 
>> A run_param_test.sh script runs many variants of the parametrizable
>> tests.
>> 
>> As part of those tests, a helper library "rseq" implements a user-space
>> API around restartable sequences. It uses the cpu_opv system call as
>> fallback when single-stepped by a debugger. It exposes the instruction
>> pointer addresses where the rseq assembly blocks begin and end, as well
>> as the associated abort instruction pointer, in the __rseq_table
>> section. This section allows debuggers may know where to place
>> breakpoints when single-stepping through assembly blocks which may be
>> aborted at any point by the kernel.
>> 
>> The rseq library expose APIs that present the fast-path operations.
>> The new from userspace is, e.g. for a counter increment:
>> 
>>     cpu = rseq_cpu_start();
>>     ret = rseq_addv(&data->c[cpu].count, 1, cpu);
>>     if (likely(!ret))
>>         return 0;        /* Success. */
>>     do {
>>         cpu = rseq_current_cpu();
>>         ret = cpu_op_addv(&data->c[cpu].count, 1, cpu);
>>         if (likely(!ret))
>>             return 0;    /* Success. */
>>     } while (ret > 0 || errno == EAGAIN);
>>     perror("cpu_op_addv");
>>     return -1;           /* Unexpected error. */
>> 
>> PowerPC tests have been implemented by Boqun Feng.
>> 
>> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
>> CC: Russell King <linux@arm.linux.org.uk>
>> CC: Catalin Marinas <catalin.marinas@arm.com>
>> CC: Will Deacon <will.deacon@arm.com>
>> CC: Thomas Gleixner <tglx@linutronix.de>
>> CC: Paul Turner <pjt@google.com>
>> CC: Andrew Hunter <ahh@google.com>
>> CC: Peter Zijlstra <peterz@infradead.org>
>> CC: Andy Lutomirski <luto@amacapital.net>
>> CC: Andi Kleen <andi@firstfloor.org>
>> CC: Dave Watson <davejwatson@fb.com>
>> CC: Chris Lameter <cl@linux.com>
>> CC: Ingo Molnar <mingo@redhat.com>
>> CC: "H. Peter Anvin" <hpa@zytor.com>
>> CC: Ben Maurer <bmaurer@fb.com>
>> CC: Steven Rostedt <rostedt@goodmis.org>
>> CC: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
>> CC: Josh Triplett <josh@joshtriplett.org>
>> CC: Linus Torvalds <torvalds@linux-foundation.org>
>> CC: Andrew Morton <akpm@linux-foundation.org>
>> CC: Boqun Feng <boqun.feng@gmail.com>
>> CC: Shuah Khan <shuah@kernel.org>
>> CC: linux-kselftest@vger.kernel.org
>> CC: linux-api@vger.kernel.org
>> ---
>> Changes since v1:
>> - Provide abort-ip signature: The abort-ip signature is located just
>>   before the abort-ip target. It is currently hardcoded, but a
>>   user-space application could use the __rseq_table to iterate on all
>>   abort-ip targets and use a random value as signature if needed in the
>>   future.
>> - Add rseq_prepare_unload(): Libraries and JIT code using rseq critical
>>   sections need to issue rseq_prepare_unload() on each thread at least
>>   once before reclaim of struct rseq_cs.
>> - Use initial-exec TLS model, non-weak symbol: The initial-exec model is
>>   signal-safe, whereas the global-dynamic model is not.  Remove the
>>   "weak" symbol attribute from the __rseq_abi in rseq.c. The rseq.so
>>   library will have ownership of that symbol, and there is not reason for
>>   an application or user library to try to define that symbol.
>>   The expected use is to link against libreq.so, which owns and provide
>>   that symbol.
>> - Set cpu_id to -2 on register error
>> - Add rseq_len syscall parameter, rseq_cs version
>> - Ensure disassember-friendly signature: x86 32/64 disassembler have a
>>   hard time decoding the instruction stream after a bad instruction. Use
>>   a nopl instruction to encode the signature. Suggested by Andy Lutomirski.
>> - Exercise parametrized tests variants in a shell scripts.
>> - Restartable sequences selftests: Remove use of event counter.
>> - Use cpu_id_start field:  With the cpu_id_start field, the C
>>   preparation phase of the fast-path does not need to compare cpu_id < 0
>>   anymore.
>> - Signal-safe registration and refcounting: Allow libraries using
>>   librseq.so to register it from signal handlers.
>> - Use OVERRIDE_TARGETS in makefile.
>> - Use "m" constraints for rseq_cs field.
>> 
>> Changes since v2:
>> - Update based on Thomas Gleixner's comments.
>> 
>> Changes since v3:
>> - Generate param_test_skip_fastpath and param_test_benchmark with
>>   -DSKIP_FASTPATH and -DBENCHMARK (respectively). Add param_test_fastpath
>>   to run_param_test.sh.
>> ---
>>  MAINTAINERS                                        |    1 +
>>  tools/testing/selftests/Makefile                   |    1 +
>>  tools/testing/selftests/rseq/.gitignore            |    4 +
>>  tools/testing/selftests/rseq/Makefile              |   33 +
>>  .../testing/selftests/rseq/basic_percpu_ops_test.c |  333 +++++
>>  tools/testing/selftests/rseq/basic_test.c          |   55 +
>>  tools/testing/selftests/rseq/param_test.c          | 1285 ++++++++++++++++++++
>>  tools/testing/selftests/rseq/rseq-arm.h            |  535 ++++++++
>>  tools/testing/selftests/rseq/rseq-ppc.h            |  567 +++++++++
>>  tools/testing/selftests/rseq/rseq-x86.h            |  898 ++++++++++++++
>>  tools/testing/selftests/rseq/rseq.c                |  116 ++
>>  tools/testing/selftests/rseq/rseq.h                |  154 +++
>>  tools/testing/selftests/rseq/run_param_test.sh     |  126 ++
>>  13 files changed, 4108 insertions(+)
>>  create mode 100644 tools/testing/selftests/rseq/.gitignore
>>  create mode 100644 tools/testing/selftests/rseq/Makefile
>>  create mode 100644 tools/testing/selftests/rseq/basic_percpu_ops_test.c
>>  create mode 100644 tools/testing/selftests/rseq/basic_test.c
>>  create mode 100644 tools/testing/selftests/rseq/param_test.c
>>  create mode 100644 tools/testing/selftests/rseq/rseq-arm.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq-ppc.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq-x86.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq.c
>>  create mode 100644 tools/testing/selftests/rseq/rseq.h
>>  create mode 100755 tools/testing/selftests/rseq/run_param_test.sh
>> 
> 
> Looks good.
> 
> Acked-by: Shuah Khan <shuahkh@osg.samsung.com>

Thanks the the reviews!

Mathieu

> 
> thanks,
> -- Shuah

-- 
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] [PATCH update for 4.15 3/3] rseq: selftests: Provide self-tests (v4)
Date: Wed, 22 Nov 2017 16:31:51 +0000 (UTC)	[thread overview]
Message-ID: <461615779.20063.1511368311925.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <c207283b-5256-1507-a1d9-b40e6f326e97@kernel.org>

----- On Nov 22, 2017, at 10:23 AM, shuah shuah at kernel.org wrote:

> On 11/21/2017 03:19 PM, Mathieu Desnoyers wrote:
>> Implements two basic tests of RSEQ functionality, and one more
>> exhaustive parameterizable test.
>> 
>> The first, "basic_test" only asserts that RSEQ works moderately
>> correctly. E.g. that the CPUID pointer works.
>> 
>> "basic_percpu_ops_test" is a slightly more "realistic" variant,
>> implementing a few simple per-cpu operations and testing their
>> correctness.
>> 
>> "param_test" is a parametrizable restartable sequences test. See
>> the "--help" output for usage.
>> 
>> A run_param_test.sh script runs many variants of the parametrizable
>> tests.
>> 
>> As part of those tests, a helper library "rseq" implements a user-space
>> API around restartable sequences. It uses the cpu_opv system call as
>> fallback when single-stepped by a debugger. It exposes the instruction
>> pointer addresses where the rseq assembly blocks begin and end, as well
>> as the associated abort instruction pointer, in the __rseq_table
>> section. This section allows debuggers may know where to place
>> breakpoints when single-stepping through assembly blocks which may be
>> aborted at any point by the kernel.
>> 
>> The rseq library expose APIs that present the fast-path operations.
>> The new from userspace is, e.g. for a counter increment:
>> 
>>     cpu = rseq_cpu_start();
>>     ret = rseq_addv(&data->c[cpu].count, 1, cpu);
>>     if (likely(!ret))
>>         return 0;        /* Success. */
>>     do {
>>         cpu = rseq_current_cpu();
>>         ret = cpu_op_addv(&data->c[cpu].count, 1, cpu);
>>         if (likely(!ret))
>>             return 0;    /* Success. */
>>     } while (ret > 0 || errno == EAGAIN);
>>     perror("cpu_op_addv");
>>     return -1;           /* Unexpected error. */
>> 
>> PowerPC tests have been implemented by Boqun Feng.
>> 
>> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
>> CC: Russell King <linux at arm.linux.org.uk>
>> CC: Catalin Marinas <catalin.marinas at arm.com>
>> CC: Will Deacon <will.deacon at arm.com>
>> CC: Thomas Gleixner <tglx at linutronix.de>
>> CC: Paul Turner <pjt at google.com>
>> CC: Andrew Hunter <ahh at google.com>
>> CC: Peter Zijlstra <peterz at infradead.org>
>> CC: Andy Lutomirski <luto at amacapital.net>
>> CC: Andi Kleen <andi at firstfloor.org>
>> CC: Dave Watson <davejwatson at fb.com>
>> CC: Chris Lameter <cl at linux.com>
>> CC: Ingo Molnar <mingo at redhat.com>
>> CC: "H. Peter Anvin" <hpa at zytor.com>
>> CC: Ben Maurer <bmaurer at fb.com>
>> CC: Steven Rostedt <rostedt at goodmis.org>
>> CC: "Paul E. McKenney" <paulmck at linux.vnet.ibm.com>
>> CC: Josh Triplett <josh at joshtriplett.org>
>> CC: Linus Torvalds <torvalds at linux-foundation.org>
>> CC: Andrew Morton <akpm at linux-foundation.org>
>> CC: Boqun Feng <boqun.feng at gmail.com>
>> CC: Shuah Khan <shuah at kernel.org>
>> CC: linux-kselftest at vger.kernel.org
>> CC: linux-api at vger.kernel.org
>> ---
>> Changes since v1:
>> - Provide abort-ip signature: The abort-ip signature is located just
>>   before the abort-ip target. It is currently hardcoded, but a
>>   user-space application could use the __rseq_table to iterate on all
>>   abort-ip targets and use a random value as signature if needed in the
>>   future.
>> - Add rseq_prepare_unload(): Libraries and JIT code using rseq critical
>>   sections need to issue rseq_prepare_unload() on each thread at least
>>   once before reclaim of struct rseq_cs.
>> - Use initial-exec TLS model, non-weak symbol: The initial-exec model is
>>   signal-safe, whereas the global-dynamic model is not.  Remove the
>>   "weak" symbol attribute from the __rseq_abi in rseq.c. The rseq.so
>>   library will have ownership of that symbol, and there is not reason for
>>   an application or user library to try to define that symbol.
>>   The expected use is to link against libreq.so, which owns and provide
>>   that symbol.
>> - Set cpu_id to -2 on register error
>> - Add rseq_len syscall parameter, rseq_cs version
>> - Ensure disassember-friendly signature: x86 32/64 disassembler have a
>>   hard time decoding the instruction stream after a bad instruction. Use
>>   a nopl instruction to encode the signature. Suggested by Andy Lutomirski.
>> - Exercise parametrized tests variants in a shell scripts.
>> - Restartable sequences selftests: Remove use of event counter.
>> - Use cpu_id_start field:  With the cpu_id_start field, the C
>>   preparation phase of the fast-path does not need to compare cpu_id < 0
>>   anymore.
>> - Signal-safe registration and refcounting: Allow libraries using
>>   librseq.so to register it from signal handlers.
>> - Use OVERRIDE_TARGETS in makefile.
>> - Use "m" constraints for rseq_cs field.
>> 
>> Changes since v2:
>> - Update based on Thomas Gleixner's comments.
>> 
>> Changes since v3:
>> - Generate param_test_skip_fastpath and param_test_benchmark with
>>   -DSKIP_FASTPATH and -DBENCHMARK (respectively). Add param_test_fastpath
>>   to run_param_test.sh.
>> ---
>>  MAINTAINERS                                        |    1 +
>>  tools/testing/selftests/Makefile                   |    1 +
>>  tools/testing/selftests/rseq/.gitignore            |    4 +
>>  tools/testing/selftests/rseq/Makefile              |   33 +
>>  .../testing/selftests/rseq/basic_percpu_ops_test.c |  333 +++++
>>  tools/testing/selftests/rseq/basic_test.c          |   55 +
>>  tools/testing/selftests/rseq/param_test.c          | 1285 ++++++++++++++++++++
>>  tools/testing/selftests/rseq/rseq-arm.h            |  535 ++++++++
>>  tools/testing/selftests/rseq/rseq-ppc.h            |  567 +++++++++
>>  tools/testing/selftests/rseq/rseq-x86.h            |  898 ++++++++++++++
>>  tools/testing/selftests/rseq/rseq.c                |  116 ++
>>  tools/testing/selftests/rseq/rseq.h                |  154 +++
>>  tools/testing/selftests/rseq/run_param_test.sh     |  126 ++
>>  13 files changed, 4108 insertions(+)
>>  create mode 100644 tools/testing/selftests/rseq/.gitignore
>>  create mode 100644 tools/testing/selftests/rseq/Makefile
>>  create mode 100644 tools/testing/selftests/rseq/basic_percpu_ops_test.c
>>  create mode 100644 tools/testing/selftests/rseq/basic_test.c
>>  create mode 100644 tools/testing/selftests/rseq/param_test.c
>>  create mode 100644 tools/testing/selftests/rseq/rseq-arm.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq-ppc.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq-x86.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq.c
>>  create mode 100644 tools/testing/selftests/rseq/rseq.h
>>  create mode 100755 tools/testing/selftests/rseq/run_param_test.sh
>> 
> 
> Looks good.
> 
> Acked-by: Shuah Khan <shuahkh at osg.samsung.com>

Thanks the the reviews!

Mathieu

> 
> thanks,
> -- Shuah

-- 
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] [PATCH update for 4.15 3/3] rseq: selftests: Provide self-tests (v4)
Date: Wed, 22 Nov 2017 16:31:51 +0000 (UTC)	[thread overview]
Message-ID: <461615779.20063.1511368311925.JavaMail.zimbra@efficios.com> (raw)
Message-ID: <20171122163151.a2i95k9Z-tcWyt3JmmFkhIkwZmmdKlZ__tsjkdc6Jd0@z> (raw)
In-Reply-To: <c207283b-5256-1507-a1d9-b40e6f326e97@kernel.org>

----- On Nov 22, 2017,@10:23 AM, shuah shuah@kernel.org wrote:

> On 11/21/2017 03:19 PM, Mathieu Desnoyers wrote:
>> Implements two basic tests of RSEQ functionality, and one more
>> exhaustive parameterizable test.
>> 
>> The first, "basic_test" only asserts that RSEQ works moderately
>> correctly. E.g. that the CPUID pointer works.
>> 
>> "basic_percpu_ops_test" is a slightly more "realistic" variant,
>> implementing a few simple per-cpu operations and testing their
>> correctness.
>> 
>> "param_test" is a parametrizable restartable sequences test. See
>> the "--help" output for usage.
>> 
>> A run_param_test.sh script runs many variants of the parametrizable
>> tests.
>> 
>> As part of those tests, a helper library "rseq" implements a user-space
>> API around restartable sequences. It uses the cpu_opv system call as
>> fallback when single-stepped by a debugger. It exposes the instruction
>> pointer addresses where the rseq assembly blocks begin and end, as well
>> as the associated abort instruction pointer, in the __rseq_table
>> section. This section allows debuggers may know where to place
>> breakpoints when single-stepping through assembly blocks which may be
>> aborted at any point by the kernel.
>> 
>> The rseq library expose APIs that present the fast-path operations.
>> The new from userspace is, e.g. for a counter increment:
>> 
>>     cpu = rseq_cpu_start();
>>     ret = rseq_addv(&data->c[cpu].count, 1, cpu);
>>     if (likely(!ret))
>>         return 0;        /* Success. */
>>     do {
>>         cpu = rseq_current_cpu();
>>         ret = cpu_op_addv(&data->c[cpu].count, 1, cpu);
>>         if (likely(!ret))
>>             return 0;    /* Success. */
>>     } while (ret > 0 || errno == EAGAIN);
>>     perror("cpu_op_addv");
>>     return -1;           /* Unexpected error. */
>> 
>> PowerPC tests have been implemented by Boqun Feng.
>> 
>> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
>> CC: Russell King <linux at arm.linux.org.uk>
>> CC: Catalin Marinas <catalin.marinas at arm.com>
>> CC: Will Deacon <will.deacon at arm.com>
>> CC: Thomas Gleixner <tglx at linutronix.de>
>> CC: Paul Turner <pjt at google.com>
>> CC: Andrew Hunter <ahh at google.com>
>> CC: Peter Zijlstra <peterz at infradead.org>
>> CC: Andy Lutomirski <luto at amacapital.net>
>> CC: Andi Kleen <andi at firstfloor.org>
>> CC: Dave Watson <davejwatson at fb.com>
>> CC: Chris Lameter <cl at linux.com>
>> CC: Ingo Molnar <mingo at redhat.com>
>> CC: "H. Peter Anvin" <hpa at zytor.com>
>> CC: Ben Maurer <bmaurer at fb.com>
>> CC: Steven Rostedt <rostedt at goodmis.org>
>> CC: "Paul E. McKenney" <paulmck at linux.vnet.ibm.com>
>> CC: Josh Triplett <josh at joshtriplett.org>
>> CC: Linus Torvalds <torvalds at linux-foundation.org>
>> CC: Andrew Morton <akpm at linux-foundation.org>
>> CC: Boqun Feng <boqun.feng at gmail.com>
>> CC: Shuah Khan <shuah at kernel.org>
>> CC: linux-kselftest at vger.kernel.org
>> CC: linux-api at vger.kernel.org
>> ---
>> Changes since v1:
>> - Provide abort-ip signature: The abort-ip signature is located just
>>   before the abort-ip target. It is currently hardcoded, but a
>>   user-space application could use the __rseq_table to iterate on all
>>   abort-ip targets and use a random value as signature if needed in the
>>   future.
>> - Add rseq_prepare_unload(): Libraries and JIT code using rseq critical
>>   sections need to issue rseq_prepare_unload() on each thread at least
>>   once before reclaim of struct rseq_cs.
>> - Use initial-exec TLS model, non-weak symbol: The initial-exec model is
>>   signal-safe, whereas the global-dynamic model is not.  Remove the
>>   "weak" symbol attribute from the __rseq_abi in rseq.c. The rseq.so
>>   library will have ownership of that symbol, and there is not reason for
>>   an application or user library to try to define that symbol.
>>   The expected use is to link against libreq.so, which owns and provide
>>   that symbol.
>> - Set cpu_id to -2 on register error
>> - Add rseq_len syscall parameter, rseq_cs version
>> - Ensure disassember-friendly signature: x86 32/64 disassembler have a
>>   hard time decoding the instruction stream after a bad instruction. Use
>>   a nopl instruction to encode the signature. Suggested by Andy Lutomirski.
>> - Exercise parametrized tests variants in a shell scripts.
>> - Restartable sequences selftests: Remove use of event counter.
>> - Use cpu_id_start field:  With the cpu_id_start field, the C
>>   preparation phase of the fast-path does not need to compare cpu_id < 0
>>   anymore.
>> - Signal-safe registration and refcounting: Allow libraries using
>>   librseq.so to register it from signal handlers.
>> - Use OVERRIDE_TARGETS in makefile.
>> - Use "m" constraints for rseq_cs field.
>> 
>> Changes since v2:
>> - Update based on Thomas Gleixner's comments.
>> 
>> Changes since v3:
>> - Generate param_test_skip_fastpath and param_test_benchmark with
>>   -DSKIP_FASTPATH and -DBENCHMARK (respectively). Add param_test_fastpath
>>   to run_param_test.sh.
>> ---
>>  MAINTAINERS                                        |    1 +
>>  tools/testing/selftests/Makefile                   |    1 +
>>  tools/testing/selftests/rseq/.gitignore            |    4 +
>>  tools/testing/selftests/rseq/Makefile              |   33 +
>>  .../testing/selftests/rseq/basic_percpu_ops_test.c |  333 +++++
>>  tools/testing/selftests/rseq/basic_test.c          |   55 +
>>  tools/testing/selftests/rseq/param_test.c          | 1285 ++++++++++++++++++++
>>  tools/testing/selftests/rseq/rseq-arm.h            |  535 ++++++++
>>  tools/testing/selftests/rseq/rseq-ppc.h            |  567 +++++++++
>>  tools/testing/selftests/rseq/rseq-x86.h            |  898 ++++++++++++++
>>  tools/testing/selftests/rseq/rseq.c                |  116 ++
>>  tools/testing/selftests/rseq/rseq.h                |  154 +++
>>  tools/testing/selftests/rseq/run_param_test.sh     |  126 ++
>>  13 files changed, 4108 insertions(+)
>>  create mode 100644 tools/testing/selftests/rseq/.gitignore
>>  create mode 100644 tools/testing/selftests/rseq/Makefile
>>  create mode 100644 tools/testing/selftests/rseq/basic_percpu_ops_test.c
>>  create mode 100644 tools/testing/selftests/rseq/basic_test.c
>>  create mode 100644 tools/testing/selftests/rseq/param_test.c
>>  create mode 100644 tools/testing/selftests/rseq/rseq-arm.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq-ppc.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq-x86.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq.c
>>  create mode 100644 tools/testing/selftests/rseq/rseq.h
>>  create mode 100755 tools/testing/selftests/rseq/run_param_test.sh
>> 
> 
> Looks good.
> 
> Acked-by: Shuah Khan <shuahkh at osg.samsung.com>

Thanks the the reviews!

Mathieu

> 
> thanks,
> -- Shuah

-- 
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: shuah <shuah@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
	"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>,
	linux-kselftest <linux-kselftest@vger.kernel.org>,
	Shuah Khan <shuahkh@osg.samsung.com>
Subject: Re: [PATCH update for 4.15 3/3] rseq: selftests: Provide self-tests (v4)
Date: Wed, 22 Nov 2017 16:31:51 +0000 (UTC)	[thread overview]
Message-ID: <461615779.20063.1511368311925.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <c207283b-5256-1507-a1d9-b40e6f326e97@kernel.org>

----- On Nov 22, 2017, at 10:23 AM, shuah shuah@kernel.org wrote:

> On 11/21/2017 03:19 PM, Mathieu Desnoyers wrote:
>> Implements two basic tests of RSEQ functionality, and one more
>> exhaustive parameterizable test.
>> 
>> The first, "basic_test" only asserts that RSEQ works moderately
>> correctly. E.g. that the CPUID pointer works.
>> 
>> "basic_percpu_ops_test" is a slightly more "realistic" variant,
>> implementing a few simple per-cpu operations and testing their
>> correctness.
>> 
>> "param_test" is a parametrizable restartable sequences test. See
>> the "--help" output for usage.
>> 
>> A run_param_test.sh script runs many variants of the parametrizable
>> tests.
>> 
>> As part of those tests, a helper library "rseq" implements a user-space
>> API around restartable sequences. It uses the cpu_opv system call as
>> fallback when single-stepped by a debugger. It exposes the instruction
>> pointer addresses where the rseq assembly blocks begin and end, as well
>> as the associated abort instruction pointer, in the __rseq_table
>> section. This section allows debuggers may know where to place
>> breakpoints when single-stepping through assembly blocks which may be
>> aborted at any point by the kernel.
>> 
>> The rseq library expose APIs that present the fast-path operations.
>> The new from userspace is, e.g. for a counter increment:
>> 
>>     cpu = rseq_cpu_start();
>>     ret = rseq_addv(&data->c[cpu].count, 1, cpu);
>>     if (likely(!ret))
>>         return 0;        /* Success. */
>>     do {
>>         cpu = rseq_current_cpu();
>>         ret = cpu_op_addv(&data->c[cpu].count, 1, cpu);
>>         if (likely(!ret))
>>             return 0;    /* Success. */
>>     } while (ret > 0 || errno == EAGAIN);
>>     perror("cpu_op_addv");
>>     return -1;           /* Unexpected error. */
>> 
>> PowerPC tests have been implemented by Boqun Feng.
>> 
>> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
>> CC: Russell King <linux@arm.linux.org.uk>
>> CC: Catalin Marinas <catalin.marinas@arm.com>
>> CC: Will Deacon <will.deacon@arm.com>
>> CC: Thomas Gleixner <tglx@linutronix.de>
>> CC: Paul Turner <pjt@google.com>
>> CC: Andrew Hunter <ahh@google.com>
>> CC: Peter Zijlstra <peterz@infradead.org>
>> CC: Andy Lutomirski <luto@amacapital.net>
>> CC: Andi Kleen <andi@firstfloor.org>
>> CC: Dave Watson <davejwatson@fb.com>
>> CC: Chris Lameter <cl@linux.com>
>> CC: Ingo Molnar <mingo@redhat.com>
>> CC: "H. Peter Anvin" <hpa@zytor.com>
>> CC: Ben Maurer <bmaurer@fb.com>
>> CC: Steven Rostedt <rostedt@goodmis.org>
>> CC: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
>> CC: Josh Triplett <josh@joshtriplett.org>
>> CC: Linus Torvalds <torvalds@linux-foundation.org>
>> CC: Andrew Morton <akpm@linux-foundation.org>
>> CC: Boqun Feng <boqun.feng@gmail.com>
>> CC: Shuah Khan <shuah@kernel.org>
>> CC: linux-kselftest@vger.kernel.org
>> CC: linux-api@vger.kernel.org
>> ---
>> Changes since v1:
>> - Provide abort-ip signature: The abort-ip signature is located just
>>   before the abort-ip target. It is currently hardcoded, but a
>>   user-space application could use the __rseq_table to iterate on all
>>   abort-ip targets and use a random value as signature if needed in the
>>   future.
>> - Add rseq_prepare_unload(): Libraries and JIT code using rseq critical
>>   sections need to issue rseq_prepare_unload() on each thread at least
>>   once before reclaim of struct rseq_cs.
>> - Use initial-exec TLS model, non-weak symbol: The initial-exec model is
>>   signal-safe, whereas the global-dynamic model is not.  Remove the
>>   "weak" symbol attribute from the __rseq_abi in rseq.c. The rseq.so
>>   library will have ownership of that symbol, and there is not reason for
>>   an application or user library to try to define that symbol.
>>   The expected use is to link against libreq.so, which owns and provide
>>   that symbol.
>> - Set cpu_id to -2 on register error
>> - Add rseq_len syscall parameter, rseq_cs version
>> - Ensure disassember-friendly signature: x86 32/64 disassembler have a
>>   hard time decoding the instruction stream after a bad instruction. Use
>>   a nopl instruction to encode the signature. Suggested by Andy Lutomirski.
>> - Exercise parametrized tests variants in a shell scripts.
>> - Restartable sequences selftests: Remove use of event counter.
>> - Use cpu_id_start field:  With the cpu_id_start field, the C
>>   preparation phase of the fast-path does not need to compare cpu_id < 0
>>   anymore.
>> - Signal-safe registration and refcounting: Allow libraries using
>>   librseq.so to register it from signal handlers.
>> - Use OVERRIDE_TARGETS in makefile.
>> - Use "m" constraints for rseq_cs field.
>> 
>> Changes since v2:
>> - Update based on Thomas Gleixner's comments.
>> 
>> Changes since v3:
>> - Generate param_test_skip_fastpath and param_test_benchmark with
>>   -DSKIP_FASTPATH and -DBENCHMARK (respectively). Add param_test_fastpath
>>   to run_param_test.sh.
>> ---
>>  MAINTAINERS                                        |    1 +
>>  tools/testing/selftests/Makefile                   |    1 +
>>  tools/testing/selftests/rseq/.gitignore            |    4 +
>>  tools/testing/selftests/rseq/Makefile              |   33 +
>>  .../testing/selftests/rseq/basic_percpu_ops_test.c |  333 +++++
>>  tools/testing/selftests/rseq/basic_test.c          |   55 +
>>  tools/testing/selftests/rseq/param_test.c          | 1285 ++++++++++++++++++++
>>  tools/testing/selftests/rseq/rseq-arm.h            |  535 ++++++++
>>  tools/testing/selftests/rseq/rseq-ppc.h            |  567 +++++++++
>>  tools/testing/selftests/rseq/rseq-x86.h            |  898 ++++++++++++++
>>  tools/testing/selftests/rseq/rseq.c                |  116 ++
>>  tools/testing/selftests/rseq/rseq.h                |  154 +++
>>  tools/testing/selftests/rseq/run_param_test.sh     |  126 ++
>>  13 files changed, 4108 insertions(+)
>>  create mode 100644 tools/testing/selftests/rseq/.gitignore
>>  create mode 100644 tools/testing/selftests/rseq/Makefile
>>  create mode 100644 tools/testing/selftests/rseq/basic_percpu_ops_test.c
>>  create mode 100644 tools/testing/selftests/rseq/basic_test.c
>>  create mode 100644 tools/testing/selftests/rseq/param_test.c
>>  create mode 100644 tools/testing/selftests/rseq/rseq-arm.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq-ppc.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq-x86.h
>>  create mode 100644 tools/testing/selftests/rseq/rseq.c
>>  create mode 100644 tools/testing/selftests/rseq/rseq.h
>>  create mode 100755 tools/testing/selftests/rseq/run_param_test.sh
>> 
> 
> Looks good.
> 
> Acked-by: Shuah Khan <shuahkh@osg.samsung.com>

Thanks the the reviews!

Mathieu

> 
> thanks,
> -- Shuah

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

  reply	other threads:[~2017-11-22 16:31 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
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
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
     [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-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] ` <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 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 [this message]
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=461615779.20063.1511368311925.JavaMail.zimbra@efficios.com \
    --to=mathieu.desnoyers@efficios.com \
    --cc=ahh@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=bmaurer@fb.com \
    --cc=boqun.feng@gmail.com \
    --cc=cl@linux.com \
    --cc=davejwatson@fb.com \
    --cc=hpa@zytor.com \
    --cc=josh@joshtriplett.org \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=luto@amacapital.net \
    --cc=mingo@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=pjt@google.com \
    --cc=rostedt@goodmis.org \
    --cc=shuah@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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.