All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 00/15] rseq uapi and selftest updates
@ 2022-01-24 17:12 Mathieu Desnoyers
  2022-01-24 17:12 ` [RFC PATCH 01/15] selftests/rseq: introduce own copy of rseq uapi header Mathieu Desnoyers
                   ` (15 more replies)
  0 siblings, 16 replies; 40+ messages in thread
From: Mathieu Desnoyers @ 2022-01-24 17:12 UTC (permalink / raw)
  To: Thomas Gleixner
  Cc: linux-kernel, Peter Zijlstra, Paul E . McKenney, Boqun Feng,
	H . Peter Anvin, Paul Turner, linux-api, Shuah Khan,
	linux-kselftest, Mathieu Desnoyers

Update the rseq selftests to adapt to the userspace ABI chosen by glibc
(will be released in February 2022). Provide a fallback implementation
to work with older glibc as well.

Remove broken 32-bit little/big endian accessor fields in rseq uapi.

Integrate various fixes gathered from librseq, including work-around for
known gcc and clang compiler bugs with asm goto.

The uplift to glibc's userspace ABI means we can now use %fs/%gs segment
selectors directly in the inline assembler for accesses to the rseq
thread area on x86.

Feedback is welcome,

Thanks,

Mathieu

Mathieu Desnoyers (15):
  selftests/rseq: introduce own copy of rseq uapi header
  rseq: Remove broken uapi field layout on 32-bit little endian
  selftests/rseq: Remove useless assignment to cpu variable
  selftests/rseq: Remove volatile from __rseq_abi
  selftests/rseq: Introduce rseq_get_abi() helper
  selftests/rseq: Introduce thread pointer getters
  selftests/rseq: Uplift rseq selftests for compatibility with
    glibc-2.35
  selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on big
    endian
  selftests/rseq: Fix ppc32 missing instruction selection "u" and "x"
    for load/store
  selftests/rseq: Fix ppc32 offsets by using long rather than off_t
  selftests/rseq: Fix warnings about #if checks of undefined tokens
  selftests/rseq: Remove arm/mips asm goto compiler work-around
  selftests/rseq: Fix: work-around asm goto compiler bugs
  selftests/rseq: x86-64: use %fs segment selector for accessing rseq
    thread area
  selftests/rseq: x86-32: use %gs segment selector for accessing rseq
    thread area

 include/uapi/linux/rseq.h                     |  17 +-
 tools/testing/selftests/rseq/Makefile         |   2 +-
 .../selftests/rseq/basic_percpu_ops_test.c    |   2 +-
 tools/testing/selftests/rseq/compiler.h       |  30 +++
 tools/testing/selftests/rseq/param_test.c     |   8 +-
 tools/testing/selftests/rseq/rseq-abi.h       | 151 +++++++++++++
 tools/testing/selftests/rseq/rseq-arm.h       | 110 +++++-----
 tools/testing/selftests/rseq/rseq-arm64.h     |  79 +++++--
 .../rseq/rseq-generic-thread-pointer.h        |  25 +++
 tools/testing/selftests/rseq/rseq-mips.h      |  71 ++-----
 .../selftests/rseq/rseq-ppc-thread-pointer.h  |  30 +++
 tools/testing/selftests/rseq/rseq-ppc.h       | 128 +++++++----
 tools/testing/selftests/rseq/rseq-s390.h      |  55 +++--
 tools/testing/selftests/rseq/rseq-skip.h      |   2 +-
 .../selftests/rseq/rseq-thread-pointer.h      |  19 ++
 .../selftests/rseq/rseq-x86-thread-pointer.h  |  40 ++++
 tools/testing/selftests/rseq/rseq-x86.h       | 200 ++++++++++++------
 tools/testing/selftests/rseq/rseq.c           | 163 +++++++-------
 tools/testing/selftests/rseq/rseq.h           |  29 ++-
 19 files changed, 793 insertions(+), 368 deletions(-)
 create mode 100644 tools/testing/selftests/rseq/compiler.h
 create mode 100644 tools/testing/selftests/rseq/rseq-abi.h
 create mode 100644 tools/testing/selftests/rseq/rseq-generic-thread-pointer.h
 create mode 100644 tools/testing/selftests/rseq/rseq-ppc-thread-pointer.h
 create mode 100644 tools/testing/selftests/rseq/rseq-thread-pointer.h
 create mode 100644 tools/testing/selftests/rseq/rseq-x86-thread-pointer.h

-- 
2.17.1


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

end of thread, other threads:[~2022-02-03 14:36 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-24 17:12 [RFC PATCH 00/15] rseq uapi and selftest updates Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 01/15] selftests/rseq: introduce own copy of rseq uapi header Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 02/15] rseq: Remove broken uapi field layout on 32-bit little endian Mathieu Desnoyers
2022-01-25 12:21   ` Christian Brauner
2022-01-25 14:41     ` Mathieu Desnoyers
2022-01-25 19:00       ` Mathieu Desnoyers
2022-01-26  8:03         ` Christian Brauner
2022-01-26 11:00           ` Florian Weimer
2022-01-26 17:16         ` David Laight
2022-01-26 18:59           ` Mathieu Desnoyers
2022-01-27 15:27             ` [RFC PATCH v2] " Mathieu Desnoyers
2022-01-28  8:52               ` Christian Brauner
2022-02-03 14:33               ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 03/15] selftests/rseq: Remove useless assignment to cpu variable Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 04/15] selftests/rseq: Remove volatile from __rseq_abi Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 05/15] selftests/rseq: Introduce rseq_get_abi() helper Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 06/15] selftests/rseq: Introduce thread pointer getters Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 07/15] selftests/rseq: Uplift rseq selftests for compatibility with glibc-2.35 Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 08/15] selftests/rseq: Fix ppc32: wrong rseq_cs 32-bit field pointer on big endian Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 09/15] selftests/rseq: Fix ppc32 missing instruction selection "u" and "x" for load/store Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 10/15] selftests/rseq: Fix ppc32 offsets by using long rather than off_t Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 11/15] selftests/rseq: Fix warnings about #if checks of undefined tokens Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 12/15] selftests/rseq: Remove arm/mips asm goto compiler work-around Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 13/15] selftests/rseq: Fix: work-around asm goto compiler bugs Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 14/15] selftests/rseq: x86-64: use %fs segment selector for accessing rseq thread area Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-24 17:12 ` [RFC PATCH 15/15] selftests/rseq: x86-32: use %gs " Mathieu Desnoyers
2022-02-03 14:33   ` [tip: sched/core] " tip-bot2 for Mathieu Desnoyers
2022-01-27 15:46 ` [RFC PATCH 00/15] rseq uapi and selftest updates Peter Zijlstra

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.