This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[ping][PATCH v4 0/5] Add support for PKRU register to GDB and GDBServer.


Hello Pedro, All,

Can this version of the series be merged? Looking forward to your review/comments!

Thanks and Regards,
Michael



On 01/02/2017 14:03, Michael Sturm wrote:
This patch series adds support for the registers added by the
Memory Protection Keys for Userspace (PKU aka PKEYs).
Native and remote debugging are covered by this patch.

The feedback I got during the first review of this patch raised
questions regarding the naming of XSTATE masks and target descriptors.
in addition, Walfred started working on patches that included renaming
of XSTATE masks and target descriptors. These patches have been submitted
by now.
(https://sourceware.org/ml/gdb-patches/2016-04/msg00329.html)
(https://sourceware.org/ml/gdb-patches/2016-04/msg00328.html)

Adressed in V4:
Updated copyrights to 2017 throughout the series.

* [PATCH v3 2/5] Change xstate_bv handling to use 8 bytes of data
   Moved explanatory text from Changelog to commit log.
* [PATCH v3 3/5] Rename target descriptions to reflect actual content
   Removed unneccessary new expedites. Added fs_base/gs_base registers.
* [PATCH v3 5/5] Add support for Intel PKRU register to GDB and GDBserver
   Changed returned type of i386_pkru_regnum_p to bool.
   Removed "Contributed by..." text.
   Include stddef.h instead of stdio.h in test source file.
   Check for actual value in pkru read back test.

Adressed in V3:
* [PATCH v2 1/5] Sync up x86-gcc-cpuid.h with cpuid.h from gcc-6 branch
   Added copyright blurb that got lost by accident.
* PATCH v2 2/5] Change xstate_bv handling to use 8 bytes of data
   Shortened description of changes in Changelog.
* [PATCH v2 5/5] Add support for Intel PKRU register to GDB and GDBserver
   Corrected spurious change in NEWS and some missing spaces in comments.
   Removed some code in the test and improved the output as pointed out by Luis..
Adressed in V2:
* [Patch v2 1/5] New patch to sync cpuid bits with GCC as suggested by
   Pedro.
* [PATCH v2 2/5] Change xstate_bv handling to use 8 bytes of data:
   Read/write xstate_bc values using endianess-aware functions.
* [PATCH v2 3/5] Rename target descriptions to reflect actual content:
   Addressed comments by Pedro regarding wording in Changelog.
* [PATCH v2 4/5] Add target description for avx-avx512:
   Addressed comments by Pedro regarding Changelog.
   Fixed wording of comments regarding MPX on x32.
   Removed MPX from comment in x32*.xml files.
* [PATCH v2 5/5] Add support for Intel PKRU register to GDB and GDBserver:
   Adressed comments by Pedro regarding Changelog.
   Added missing renames in GDBserver ipa-related files.
   Changed test for PKU following comments by Pedro.
I'd like to answer Pedro's question regarding the approach of
   adding PKRU to amd64-avx-mpx_avx512-* tdesc and renaming _without_
   keeping a copy without PKU:
   Q: "Is that really the right thing to do?  What about machines that
   _don't_ support pkru?  Shouldn't we keep the older descriptions
   for those?
   A: The first machine to support PKU will have the xstate mask
   X86_XSTATE_AVX_MPX_AVX512_PKU_MASK.
   The nearest existing xstate masks without PKU are
   X86_XSTATE_AVX_AVX512_MASK, which was introduced in patch 4 of
   this series, and X86_XSTATE_AVX_MPX_MASK.
   I've only kept X86_XSTATE_AVX_MPX_AVX512_MASK in patch 4,
   because it is reused in patch 5 to be renamed to
   X86_XSTATE_AVX_MPX_AVX512_PKU_MASK.

Michael Sturm (5):
   Sync up x86-gcc-cpuid.h with cpuid.h from gcc-6 branch.
   Change xstate_bv handling to use 8 bytes of data.
   Rename target descriptions to reflect actual content of description.
   Add target description for avx-avx512.
   Add support for Intel PKRU register to GDB and GDBserver.

  gdb/NEWS                                           |   4 +
  gdb/amd64-linux-nat.c                              |   1 +
  gdb/amd64-linux-tdep.c                             |  30 ++-
  gdb/amd64-linux-tdep.h                             |   7 +-
  gdb/amd64-tdep.c                                   |  28 +-
  gdb/amd64-tdep.h                                   |   1 +
  gdb/common/x86-xstate.h                            |  21 +-
  gdb/doc/gdb.texinfo                                |   4 +
  gdb/features/Makefile                              |  64 +++--
  gdb/features/i386/32bit-pkeys.xml                  |  13 +
  gdb/features/i386/64bit-pkeys.xml                  |  13 +
  gdb/features/i386/amd64-avx-avx512-linux.c         | 288 +++++++++++++++++++++
  gdb/features/i386/amd64-avx-avx512-linux.xml       |  20 ++
  gdb/features/i386/amd64-avx-avx512.c               | 279 ++++++++++++++++++++
  gdb/features/i386/amd64-avx-avx512.xml             |  17 ++
  ...12-linux.c => amd64-avx-mpx-avx512-pku-linux.c} |  11 +-
  ...inux.xml => amd64-avx-mpx-avx512-pku-linux.xml} |   4 +-
  .../{amd64-avx512.c => amd64-avx-mpx-avx512-pku.c} |  11 +-
  ...d64-avx512.xml => amd64-avx-mpx-avx512-pku.xml} |   3 +-
  gdb/features/i386/i386-avx-avx512-linux.c          | 170 ++++++++++++
  gdb/features/i386/i386-avx-avx512-linux.xml        |  19 ++
  gdb/features/i386/i386-avx-avx512.c                | 165 ++++++++++++
  gdb/features/i386/i386-avx-avx512.xml              |  17 ++
  ...512-linux.c => i386-avx-mpx-avx512-pku-linux.c} |  11 +-
  ...linux.xml => i386-avx-mpx-avx512-pku-linux.xml} |   4 +-
  .../{i386-avx512.c => i386-avx-mpx-avx512-pku.c}   |  11 +-
  ...i386-avx512.xml => i386-avx-mpx-avx512-pku.xml} |   3 +-
  .../{x32-avx512-linux.c => x32-avx-avx512-linux.c} | 192 ++++++--------
  ...2-avx512-linux.xml => x32-avx-avx512-linux.xml} |   3 +-
  .../i386/{x32-avx512.c => x32-avx-avx512.c}        | 190 ++++++--------
  .../i386/{x32-avx512.xml => x32-avx-avx512.xml}    |   3 +-
  gdb/gdbserver/Makefile.in                          |  50 ++--
  gdb/gdbserver/configure.srv                        |  25 +-
  gdb/gdbserver/i387-fp.c                            |  51 +++-
  gdb/gdbserver/linux-amd64-ipa.c                    |  15 +-
  gdb/gdbserver/linux-i386-ipa.c                     |  10 +-
  gdb/gdbserver/linux-x86-low.c                      |  45 +++-
  gdb/gdbserver/linux-x86-tdesc.h                    |  29 ++-
  gdb/i386-linux-nat.c                               |   2 +-
  gdb/i386-linux-tdep.c                              |  14 +-
  gdb/i386-linux-tdep.h                              |   6 +-
  gdb/i386-tdep.c                                    |  76 +++++-
  gdb/i386-tdep.h                                    |  14 +-
  gdb/i387-tdep.c                                    | 116 ++++++++-
  gdb/i387-tdep.h                                    |   5 +
  gdb/nat/x86-gcc-cpuid.h                            | 108 ++++----
  .../{x32-avx512.dat => amd64-avx-avx512-linux.dat} |  15 +-
  .../{amd64-avx512.dat => amd64-avx-avx512.dat}     |  12 +-
  ...inux.dat => amd64-avx-mpx-avx512-pku-linux.dat} |   6 +-
  ...x512-linux.dat => amd64-avx-mpx-avx512-pku.dat} |   7 +-
  gdb/regformats/i386/i386-avx-avx512-linux.dat      |  71 +++++
  gdb/regformats/i386/i386-avx-avx512.dat            |  70 +++++
  ...vx512.dat => i386-avx-mpx-avx512-pku-linux.dat} |   8 +-
  ...vx512-linux.dat => i386-avx-mpx-avx512-pku.dat} |   8 +-
  gdb/regformats/i386/x32-avx-avx512-linux.dat       | 153 +++++++++++
  gdb/regformats/i386/x32-avx-avx512.dat             | 150 +++++++++++
  gdb/testsuite/gdb.arch/i386-pkru.c                 |  90 +++++++
  gdb/testsuite/gdb.arch/i386-pkru.exp               |  69 +++++
  gdb/x86-linux-nat.c                                |  20 +-
  59 files changed, 2351 insertions(+), 501 deletions(-)
  create mode 100644 gdb/features/i386/32bit-pkeys.xml
  create mode 100644 gdb/features/i386/64bit-pkeys.xml
  create mode 100644 gdb/features/i386/amd64-avx-avx512-linux.c
  create mode 100644 gdb/features/i386/amd64-avx-avx512-linux.xml
  create mode 100644 gdb/features/i386/amd64-avx-avx512.c
  create mode 100644 gdb/features/i386/amd64-avx-avx512.xml
  rename gdb/features/i386/{amd64-avx512-linux.c => amd64-avx-mpx-avx512-pku-linux.c} (97%)
  rename gdb/features/i386/{amd64-avx512-linux.xml => amd64-avx-mpx-avx512-pku-linux.xml} (83%)
  rename gdb/features/i386/{amd64-avx512.c => amd64-avx-mpx-avx512-pku.c} (98%)
  rename gdb/features/i386/{amd64-avx512.xml => amd64-avx-mpx-avx512-pku.xml} (87%)
  create mode 100644 gdb/features/i386/i386-avx-avx512-linux.c
  create mode 100644 gdb/features/i386/i386-avx-avx512-linux.xml
  create mode 100644 gdb/features/i386/i386-avx-avx512.c
  create mode 100644 gdb/features/i386/i386-avx-avx512.xml
  rename gdb/features/i386/{i386-avx512-linux.c => i386-avx-mpx-avx512-pku-linux.c} (96%)
  rename gdb/features/i386/{i386-avx512-linux.xml => i386-avx-mpx-avx512-pku-linux.xml} (82%)
  rename gdb/features/i386/{i386-avx512.c => i386-avx-mpx-avx512-pku.c} (96%)
  rename gdb/features/i386/{i386-avx512.xml => i386-avx-mpx-avx512-pku.xml} (87%)
  rename gdb/features/i386/{x32-avx512-linux.c => x32-avx-avx512-linux.c} (61%)
  rename gdb/features/i386/{x32-avx512-linux.xml => x32-avx-avx512-linux.xml} (85%)
  rename gdb/features/i386/{x32-avx512.c => x32-avx-avx512.c} (60%)
  rename gdb/features/i386/{x32-avx512.xml => x32-avx-avx512.xml} (89%)
  rename gdb/regformats/i386/{x32-avx512.dat => amd64-avx-avx512-linux.dat} (90%)
  rename gdb/regformats/i386/{amd64-avx512.dat => amd64-avx-avx512.dat} (90%)
  rename gdb/regformats/i386/{x32-avx512-linux.dat => amd64-avx-mpx-avx512-pku-linux.dat} (91%)
  rename gdb/regformats/i386/{amd64-avx512-linux.dat => amd64-avx-mpx-avx512-pku.dat} (92%)
  create mode 100644 gdb/regformats/i386/i386-avx-avx512-linux.dat
  create mode 100644 gdb/regformats/i386/i386-avx-avx512.dat
  rename gdb/regformats/i386/{i386-avx512.dat => i386-avx-mpx-avx512-pku-linux.dat} (81%)
  rename gdb/regformats/i386/{i386-avx512-linux.dat => i386-avx-mpx-avx512-pku.dat} (84%)
  create mode 100644 gdb/regformats/i386/x32-avx-avx512-linux.dat
  create mode 100644 gdb/regformats/i386/x32-avx-avx512.dat
  create mode 100644 gdb/testsuite/gdb.arch/i386-pkru.c
  create mode 100644 gdb/testsuite/gdb.arch/i386-pkru.exp


Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Christian Lamprechter
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]