[PATCH v4 0/4] powerpc/tm: Abort syscalls in active transactions

Sam Bobroff sam.bobroff at au1.ibm.com
Fri Apr 10 14:16:46 AEST 2015


See the first patch for a description of the reasoning behind this
change.

This set includes the change, a kernel selftest for it and
some slight refactoring of the selftest code.


v4:
Patch 3/4: selftests/powerpc: Add transactional syscall test

Incorporated changes suggested by Michael Ellerman:
I added a GPL header, fixed up some formatting, and switched to
__builtin_get_texasru() which works for 32-bit.


v3:
Patch 1/4: powerpc/tm: Abort syscalls in active transactions

Use "TABORT()" macro to allow building on versions of gcc that don't support
the "tabort." instruction.


v2:
Patch 1/4: powerpc/tm: Abort syscalls in active transactions

Also update the failure code table.

Patch 3/4: selftests/powerpc: Add transactional syscall test

Further testing has shown that the success or failure of the transactions was
affected by minor changes to the code, compiler optimisation and linker
settings.

To address this, I've moved the transactional part of the test to a separate
function, written in assembly. I've also extended the test to as many
transactions as it can fit into ten seconds, to better test for failures that
occur more rarely. This has stabilised the results, and it's no longer
necessary to use special compiler or linker flags.

Patch 4/4: powerpc/tm: Correct minor documentation typos

Discovered some typos while updating the documentation.


Sam Bobroff (4):
  powerpc/tm: Abort syscalls in active transactions
  selftests/powerpc: Move get_auxv_entry() to harness.c
  selftests/powerpc: Add transactional syscall test
  powerpc/tm: Correct minor documentation typos

 Documentation/powerpc/transactional_memory.txt     |   36 +++---
 arch/powerpc/include/uapi/asm/tm.h                 |    2 +-
 arch/powerpc/kernel/entry_64.S                     |   19 +++
 tools/testing/selftests/powerpc/harness.c          |   47 ++++++++
 tools/testing/selftests/powerpc/pmu/lib.c          |   47 --------
 tools/testing/selftests/powerpc/pmu/lib.h          |    1 -
 tools/testing/selftests/powerpc/tm/.gitignore      |    1 +
 tools/testing/selftests/powerpc/tm/Makefile        |    5 +-
 .../testing/selftests/powerpc/tm/tm-syscall-asm.S  |   27 +++++
 tools/testing/selftests/powerpc/tm/tm-syscall.c    |  121 ++++++++++++++++++++
 tools/testing/selftests/powerpc/utils.h            |    2 +-
 11 files changed, 239 insertions(+), 69 deletions(-)
 create mode 100644 tools/testing/selftests/powerpc/tm/tm-syscall-asm.S
 create mode 100644 tools/testing/selftests/powerpc/tm/tm-syscall.c

-- 
1.7.10.4



More information about the Linuxppc-dev mailing list