linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v11 00/27] Add new powerpc specific ELF core notes
@ 2016-07-17  1:59 wei.guo.simon
  2016-07-17  1:59 ` [PATCH v11 01/27] elf: Add powerpc specific core note sections wei.guo.simon
                   ` (26 more replies)
  0 siblings, 27 replies; 28+ messages in thread
From: wei.guo.simon @ 2016-07-17  1:59 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Simon Guo, Benjamin Herrenschmidt, Paul Mackerras, Shuah Khan,
	Anton Blanchard, Cyril Bur, Anshuman Khandual, Ulrich Weigand,
	Michael Neuling, Andrew Morton, Kees Cook, Rashmica Gupta,
	Khem Raj, Jessica Yu, Jiri Kosina, Miroslav Benes,
	Suraj Jitindar Singh, Chris Smart, linuxppc-dev, linux-kernel,
	linux-kselftest

From: Simon Guo <wei.guo.simon@gmail.com>


This patch series adds twelve new ELF core note sections which can 
be used with existing ptrace request PTRACE_GETREG/SET-SETREGSET for accessing 
various transactional memory and other miscellaneous debug register sets on 
powerpc platform. 

Note this patch series now depends on following patch:
  [PATCH 3/5] powerpc: tm: Always use fp_state and vr_state to store live registers

Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Shuah Khan <shuahkh@osg.samsung.com>
Cc: Anton Blanchard <anton@samba.org>
Cc: Cyril Bur <cyrilbur@gmail.com>
Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Cc: Simon Guo <wei.guo.simon@gmail.com>
Cc: Ulrich Weigand <ulrich.weigand@de.ibm.com>
Cc: Michael Neuling <mikey@neuling.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Rashmica Gupta <rashmicy@gmail.com>
Cc: Khem Raj <raj.khem@gmail.com>
Cc: Jessica Yu <jeyu@redhat.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Miroslav Benes <mbenes@suse.cz>
Cc: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
Cc: Chris Smart <chris@distroguy.com>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-kselftest@vger.kernel.org
Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com>

Test Result (All tests pass on both BE and LE) 
---------------------------------------------- 
ptrace-ebb	PASS 
ptrace-gpr	PASS 
ptrace-tm-gpr	PASS 
ptrace-tm-spd-gpr	PASS 
ptrace-tar	PASS 
ptrace-tm-tar	PASS 
ptrace-tm-spd-tar	PASS 
ptrace-vsx	PASS 
ptrace-tm-vsx	PASS 
ptrace-tm-spd-vsx	PASS 
ptrace-tm-spr	PASS 

Previous versions: 
================== 
RFC: https://lkml.org/lkml/2014/4/1/292
V1:  https://lkml.org/lkml/2014/4/2/43
V2:  https://lkml.org/lkml/2014/5/5/88
V3:  https://lkml.org/lkml/2014/5/23/486
V4:  https://lkml.org/lkml/2014/11/11/6
V5:  https://lkml.org/lkml/2014/11/25/134
V6:  https://lkml.org/lkml/2014/12/2/98
V7:  https://lkml.org/lkml/2015/1/14/19
V8:  https://lkml.org/lkml/2015/5/19/700
V9:  https://lkml.org/lkml/2015/10/8/522
V10: https://lkml.org/lkml/2016/2/16/219

Changes in V11: 
--------------- 
- Rework based on following patch:
  [PATCH 3/5] powerpc: tm: Always use fp_state and vr_state to store live registers
- Split EBB/PMU register ptrace implementation.
- Clean some coding style warning
- Added more shared memory based sync between parent and child during TM tests
- Re worded some of the commit messages and cleaned them up
- selftests/powerpc/ebb/reg.h has already moved as selftests/powerpc/reg.h
  Dropped the previous patch doing the same thing
- Combined the definitions of SPRN_DSCR from dscr/ test cases
- Fixed dscr/ test cases for new SPRN_DSCR_PRIV definition available

Changes in V10: 
--------------- 
- Rebased against the latest mainline 
- Fixed couple of build failures in the test cases related to aux vector 

Changes in V9: 
-------------- 
- Fixed static build check failure after tm_orig_msr got dropped 
- Fixed asm volatile construct for used registers set 
- Fixed EBB, VSX, VMX tests for LE 
- Fixed TAR test which was failing because of system calls 
- Added checks for PPC_FEATURE2_HTM aux feature in the tests 
- Fixed copyright statements 

Changes in V8: 
-------------- 
- Split the misc register set into individual ELF core notes 
- Implemented support for VSX register set (on and off TM) 
- Implemented support for EBB register set 
- Implemented review comments on previous versions 
- Some code re-arrangements, re-writes and documentation 
- Added comprehensive list of test cases into selftests 

Changes in V7: 
-------------- 
- Fixed a config directive in the MISC code 
- Merged the two gitignore patches into a single one 

Changes in V6: 
-------------- 
- Added two git ignore patches for powerpc selftests 
- Re-formatted all in-code function definitions in kernel-doc format 

Changes in V5: 
-------------- 
- Changed flush_tmregs_to_thread, so not to take into account self tracing 
- Dropped the 3rd patch in the series which had merged two functions 
- Fixed one build problem for the misc debug register patch 
- Accommodated almost all the review comments from Suka on the 6th patch 
- Minor changes to the self test program 
- Changed commit messages for some of the patches 

Changes in V4: 
-------------- 
- Added one test program into the powerpc selftest bucket in this regard 
- Split the 2nd patch in the previous series into four different patches 
- Accommodated most of the review comments on the previous patch series 
- Added a patch to merge functions __switch_to_tm and tm_reclaim_task 

Changes in V3: 
-------------- 
- Added two new error paths in every TM related get/set functions when regset 
support is not present on the system (ENODEV) or when the process does not 
have any transaction active (ENODATA) in the context 
- Installed the active hooks for all the newly added regset core note
types 

Changes in V2: 
-------------- 
- Removed all the power specific ptrace requests corresponding to new
NT_PPC_* 
elf core note types. Now all the register sets can be accessed from
ptrace 
through PTRACE_GETREGSET/PTRACE_SETREGSET using the individual
NT_PPC* core 
note type instead 
- Fixed couple of attribute values for REGSET_TM_CGPR register set 
- Renamed flush_tmreg_to_thread as flush_tmregs_to_thread 
- Fixed 32 bit checkpointed GPR support 
- Changed commit messages accordingly 
Anshuman Khandual (27):
  elf: Add powerpc specific core note sections
  powerpc/process: Add the function flush_tmregs_to_thread
  powerpc/ptrace: Adapt gpr32_get, gpr32_set functions for transaction
  powerpc/ptrace: Enable support for NT_PPC_CGPR
  powerpc/ptrace: Enable support for NT_PPC_CFPR
  powerpc/ptrace: Enable support for NT_PPC_CVMX
  powerpc/ptrace: Enable support for NT_PPC_CVSX
  powerpc/ptrace: Enable support for TM SPR state
  powerpc/ptrace: Enable NT_PPC_TM_CTAR, NT_PPC_TM_CPPR, NT_PPC_TM_CDSCR
  powerpc/ptrace: Enable support for NT_PPPC_TAR, NT_PPC_PPR,
    NT_PPC_DSCR
  powerpc/ptrace: Enable support for EBB registers
  powerpc/ptrace: Enable support for Performance Monitor registers
  selftests/powerpc: Add more SPR numbers, TM & VMX instructions to
    'reg.h'
  selftests/powerpc: Use the new SPRN_DSCR_PRIV definiton
  selftests/powerpc: Add ptrace tests for EBB
  selftests/powerpc: Add ptrace tests for GPR/FPR registers
  selftests/powerpc: Add ptrace tests for GPR/FPR registers in TM
  selftests/powerpc: Add ptrace tests for GPR/FPR registers in suspended
    TM
  selftests/powerpc: Add ptrace tests for TAR, PPR, DSCR registers
  selftests/powerpc: Add ptrace tests for TAR, PPR, DSCR in TM
  selftests/powerpc: Add ptrace tests for TAR, PPR, DSCR in suspended TM
  selftests/powerpc: Add ptrace tests for VSX, VMX registers
  selftests/powerpc: Add ptrace tests for VSX, VMX registers in TM
  selftests/powerpc: Add ptrace tests for VSX, VMX registers in
    suspended TM
  selftests/powerpc: Add ptrace tests for TM SPR registers
  selftests/powerpc: Add .gitignore file for ptrace executables
  selftests/powerpc: Fix a build issue

 arch/powerpc/include/asm/switch_to.h               |    8 +
 arch/powerpc/include/uapi/asm/elf.h                |    5 +
 arch/powerpc/kernel/process.c                      |   20 +
 arch/powerpc/kernel/ptrace.c                       | 1601 +++++++++++++++++---
 include/uapi/linux/elf.h                           |   13 +
 tools/testing/selftests/powerpc/Makefile           |    3 +-
 .../selftests/powerpc/context_switch/cp_abort.c    |    6 +-
 tools/testing/selftests/powerpc/dscr/dscr.h        |   10 +-
 tools/testing/selftests/powerpc/ptrace/.gitignore  |   11 +
 tools/testing/selftests/powerpc/ptrace/Makefile    |   13 +
 .../testing/selftests/powerpc/ptrace/ptrace-ebb.c  |  184 +++
 .../testing/selftests/powerpc/ptrace/ptrace-ebb.h  |  102 ++
 .../testing/selftests/powerpc/ptrace/ptrace-gpr.c  |  195 +++
 .../testing/selftests/powerpc/ptrace/ptrace-gpr.h  |   74 +
 .../testing/selftests/powerpc/ptrace/ptrace-tar.c  |  158 ++
 .../testing/selftests/powerpc/ptrace/ptrace-tar.h  |   50 +
 .../selftests/powerpc/ptrace/ptrace-tm-gpr.c       |  296 ++++
 .../selftests/powerpc/ptrace/ptrace-tm-spd-gpr.c   |  322 ++++
 .../selftests/powerpc/ptrace/ptrace-tm-spd-tar.c   |  192 +++
 .../selftests/powerpc/ptrace/ptrace-tm-spd-vsx.c   |  218 +++
 .../selftests/powerpc/ptrace/ptrace-tm-spr.c       |  175 +++
 .../selftests/powerpc/ptrace/ptrace-tm-tar.c       |  179 +++
 .../selftests/powerpc/ptrace/ptrace-tm-vsx.c       |  205 +++
 .../testing/selftests/powerpc/ptrace/ptrace-vsx.c  |  140 ++
 .../testing/selftests/powerpc/ptrace/ptrace-vsx.h  |  121 ++
 tools/testing/selftests/powerpc/ptrace/ptrace.S    |  396 +++++
 tools/testing/selftests/powerpc/ptrace/ptrace.h    |  783 ++++++++++
 tools/testing/selftests/powerpc/reg.h              |   42 +-
 .../powerpc/tm/tm-signal-context-chk-fpu.c         |    3 -
 .../powerpc/tm/tm-signal-context-chk-gpr.c         |    3 -
 .../powerpc/tm/tm-signal-context-chk-vmx.c         |    3 -
 .../powerpc/tm/tm-signal-context-chk-vsx.c         |    3 -
 .../selftests/powerpc/tm/tm-signal-context-chk.c   |    3 -
 33 files changed, 5338 insertions(+), 199 deletions(-)
 create mode 100644 tools/testing/selftests/powerpc/ptrace/.gitignore
 create mode 100644 tools/testing/selftests/powerpc/ptrace/Makefile
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-ebb.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-ebb.h
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-gpr.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-gpr.h
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-tar.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-tar.h
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-tm-gpr.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-tm-spd-gpr.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-tm-spd-tar.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-tm-spd-vsx.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-tm-spr.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-tm-tar.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-tm-vsx.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-vsx.c
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace-vsx.h
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace.S
 create mode 100644 tools/testing/selftests/powerpc/ptrace/ptrace.h

-- 
1.8.3.1

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

end of thread, other threads:[~2016-07-17  2:07 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-17  1:59 [PATCH v11 00/27] Add new powerpc specific ELF core notes wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 01/27] elf: Add powerpc specific core note sections wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 02/27] powerpc/process: Add the function flush_tmregs_to_thread wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 03/27] powerpc/ptrace: Adapt gpr32_get, gpr32_set functions for transaction wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 04/27] powerpc/ptrace: Enable support for NT_PPC_CGPR wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 05/27] powerpc/ptrace: Enable support for NT_PPC_CFPR wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 06/27] powerpc/ptrace: Enable support for NT_PPC_CVMX wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 07/27] powerpc/ptrace: Enable support for NT_PPC_CVSX wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 08/27] powerpc/ptrace: Enable support for TM SPR state wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 09/27] powerpc/ptrace: Enable NT_PPC_TM_CTAR, NT_PPC_TM_CPPR, NT_PPC_TM_CDSCR wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 10/27] powerpc/ptrace: Enable support for NT_PPPC_TAR, NT_PPC_PPR, NT_PPC_DSCR wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 11/27] powerpc/ptrace: Enable support for EBB registers wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 12/27] powerpc/ptrace: Enable support for Performance Monitor registers wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 13/27] selftests/powerpc: Add more SPR numbers, TM & VMX instructions to 'reg.h' wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 14/27] selftests/powerpc: Use the new SPRN_DSCR_PRIV definiton wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 15/27] selftests/powerpc: Add ptrace tests for EBB wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 16/27] selftests/powerpc: Add ptrace tests for GPR/FPR registers wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 17/27] selftests/powerpc: Add ptrace tests for GPR/FPR registers in TM wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 18/27] selftests/powerpc: Add ptrace tests for GPR/FPR registers in suspended TM wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 19/27] selftests/powerpc: Add ptrace tests for TAR, PPR, DSCR registers wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 20/27] selftests/powerpc: Add ptrace tests for TAR, PPR, DSCR in TM wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 21/27] selftests/powerpc: Add ptrace tests for TAR, PPR, DSCR in suspended TM wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 22/27] selftests/powerpc: Add ptrace tests for VSX, VMX registers wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 23/27] selftests/powerpc: Add ptrace tests for VSX, VMX registers in TM wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 24/27] selftests/powerpc: Add ptrace tests for VSX, VMX registers in suspended TM wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 25/27] selftests/powerpc: Add ptrace tests for TM SPR registers wei.guo.simon
2016-07-17  1:59 ` [PATCH v11 26/27] selftests/powerpc: Add .gitignore file for ptrace executables wei.guo.simon
2016-07-17  2:00 ` [PATCH v11 27/27] selftests/powerpc: Fix a build issue wei.guo.simon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).