Hi, Following changes based on a thorough coding style and patch changelog review from Thomas Gleixner and Peter Zijlstra, I'm respinning this series for another RFC. This series contains: - Restartable sequences system call (x86 32/64, powerpc 32/64, arm 32), - CPU operation vector system call (x86 32/64, powerpc 32/64, arm 32), - membarrier shared expedited command. Compared to v11, I've removed the "sync core" membarrier command, now queued for 4.16. I have also fixed a missing page fault-in in cpu_opv, and added a selftest test-case to cover this. This series applies on top of current Linus' master as of commit e1d1ea549b57 "Merge tag 'fbdev-v4.15' of git://github.com/bzolnier/linux" The git tag including this series can be found at https://git.kernel.org/pub/scm/linux/kernel/git/rseq/linux-rseq.git tag: v4.14+-rseq-20171121 Thanks, Mathieu Boqun Feng (2): powerpc: Add support for restartable sequences powerpc: Wire up restartable sequences system call Mathieu Desnoyers (20): uapi headers: Provide types_32_64.h rseq: Introduce restartable sequences system call (v12) arm: Add restartable sequences support arm: Wire up restartable sequences system call x86: Add support for restartable sequences x86: Wire up restartable sequence system call sched: Implement push_task_to_cpu cpu_opv: Provide cpu_opv system call (v4) x86: Wire up cpu_opv system call powerpc: Wire up cpu_opv system call arm: Wire up cpu_opv system call cpu_opv: selftests: Implement selftests (v3) rseq: selftests: Provide self-tests (v3) rseq: selftests: arm: workaround gcc asm size guess Fix: membarrier: add missing preempt off around smp_call_function_many membarrier: selftest: Test private expedited cmd (v2) powerpc: membarrier: Skip memory barrier in switch_mm() (v7) membarrier: Document scheduler barrier requirements (v5) membarrier: provide SHARED_EXPEDITED command (v2) membarrier: selftest: Test shared expedited cmd MAINTAINERS | 21 + arch/Kconfig | 7 + arch/arm/Kconfig | 1 + arch/arm/kernel/signal.c | 7 + arch/arm/tools/syscall.tbl | 2 + arch/powerpc/Kconfig | 2 + arch/powerpc/include/asm/membarrier.h | 26 + arch/powerpc/include/asm/systbl.h | 2 + arch/powerpc/include/asm/unistd.h | 2 +- arch/powerpc/include/uapi/asm/unistd.h | 2 + arch/powerpc/kernel/signal.c | 3 + arch/powerpc/mm/mmu_context.c | 7 + arch/x86/Kconfig | 1 + arch/x86/entry/common.c | 1 + arch/x86/entry/syscalls/syscall_32.tbl | 2 + arch/x86/entry/syscalls/syscall_64.tbl | 2 + arch/x86/kernel/signal.c | 6 + arch/x86/mm/tlb.c | 5 + fs/exec.c | 1 + include/linux/sched.h | 102 ++ include/linux/sched/mm.h | 21 +- include/linux/syscalls.h | 6 + include/trace/events/rseq.h | 56 + include/uapi/linux/cpu_opv.h | 114 ++ include/uapi/linux/membarrier.h | 34 +- include/uapi/linux/rseq.h | 141 +++ include/uapi/linux/types_32_64.h | 67 + init/Kconfig | 31 + kernel/Makefile | 2 + kernel/cpu_opv.c | 1060 ++++++++++++++++ kernel/fork.c | 2 + kernel/rseq.c | 338 +++++ kernel/sched/core.c | 88 +- kernel/sched/membarrier.c | 125 +- kernel/sched/sched.h | 9 + kernel/sys_ni.c | 4 + tools/testing/selftests/Makefile | 2 + tools/testing/selftests/cpu-opv/.gitignore | 1 + tools/testing/selftests/cpu-opv/Makefile | 17 + .../testing/selftests/cpu-opv/basic_cpu_opv_test.c | 1189 ++++++++++++++++++ tools/testing/selftests/cpu-opv/cpu-op.c | 348 ++++++ tools/testing/selftests/cpu-opv/cpu-op.h | 68 ++ tools/testing/selftests/lib.mk | 4 + .../testing/selftests/membarrier/membarrier_test.c | 162 ++- tools/testing/selftests/rseq/.gitignore | 4 + tools/testing/selftests/rseq/Makefile | 23 + .../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 | 568 +++++++++ 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 | 124 ++ 55 files changed, 8166 insertions(+), 52 deletions(-) create mode 100644 arch/powerpc/include/asm/membarrier.h create mode 100644 include/trace/events/rseq.h create mode 100644 include/uapi/linux/cpu_opv.h create mode 100644 include/uapi/linux/rseq.h create mode 100644 include/uapi/linux/types_32_64.h create mode 100644 kernel/cpu_opv.c create mode 100644 kernel/rseq.c create mode 100644 tools/testing/selftests/cpu-opv/.gitignore create mode 100644 tools/testing/selftests/cpu-opv/Makefile create mode 100644 tools/testing/selftests/cpu-opv/basic_cpu_opv_test.c create mode 100644 tools/testing/selftests/cpu-opv/cpu-op.c create mode 100644 tools/testing/selftests/cpu-opv/cpu-op.h 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 -- 2.11.0 -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html