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

Sturm, Michael
2017-01-26T14:07:01Z

Hello Pedro, everybody,

friendly reminder - is this series OK to be pushed?

Thanks and Regards,
Michael

https://sourceware.org/ml/gdb-patches/2016-12/msg00151.html
https://sourceware.org/ml/gdb-patches/2016-12/msg00152.html
https://sourceware.org/ml/gdb-patches/2016-12/msg00153.html
https://sourceware.org/ml/gdb-patches/2016-12/msg00154.html
https://sourceware.org/ml/gdb-patches/2016-12/msg00156.html
https://sourceware.org/ml/gdb-patches/2016-12/msg00155.html

On 26/01/2017 14:51, Sturm, Michael wrote:
>
> -----Original Message-----
> From: Sturm, Michael
> Sent: Tuesday, December 06, 2016 11:58 AM
> To: mark.kettenis@xs4all.nl; palves@redhat.com; eliz@gnu.org
> Cc: gdb-patches@sourceware.org; Sturm, Michael
> Subject: [PATCH v3 0/5] Add support for PKRU register to GDB and GDBServer.
>
> 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 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 | 5 +-
> gdb/common/x86-xstate.h | 21 +-
> gdb/doc/gdb.texinfo | 4 +
> gdb/features/Makefile | 96 +++++--
> gdb/features/i386/32bit-pkeys.xml | 13 +
> gdb/features/i386/64bit-pkeys.xml | 13 +
> gdb/features/i386/amd64-avx-avx512-linux.c | 284 +++++++++++++++++++++
> ...avx512-linux.xml => amd64-avx-avx512-linux.xml} | 3 +-
> gdb/features/i386/amd64-avx-avx512.c | 279 ++++++++++++++++++++
> .../{amd64-avx512.xml => amd64-avx-avx512.xml} | 3 +-
> ...12-linux.c => amd64-avx-mpx-avx512-pku-linux.c} | 11 +-
> .../i386/amd64-avx-mpx-avx512-pku-linux.xml | 22 ++
> .../{amd64-avx512.c => amd64-avx-mpx-avx512-pku.c} | 11 +-
> gdb/features/i386/amd64-avx-mpx-avx512-pku.xml | 19 ++
> gdb/features/i386/i386-avx-avx512-linux.c | 170 ++++++++++++
> ...-avx512-linux.xml => i386-avx-avx512-linux.xml} | 3 +-
> gdb/features/i386/i386-avx-avx512.c | 165 ++++++++++++
> .../i386/{i386-avx512.xml => i386-avx-avx512.xml} | 3 +-
> ...512-linux.c => i386-avx-mpx-avx512-pku-linux.c} | 11 +-
> .../i386/i386-avx-mpx-avx512-pku-linux.xml | 22 ++
> .../{i386-avx512.c => i386-avx-mpx-avx512-pku.c} | 11 +-
> gdb/features/i386/i386-avx-mpx-avx512-pku.xml | 19 ++
> .../{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} | 13 +-
> .../{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} | 8 +-
> 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 | 151 +++++++++++
> gdb/regformats/i386/x32-avx-avx512.dat | 150 +++++++++++
> gdb/testsuite/gdb.arch/i386-pkru.c | 92 +++++++
> gdb/testsuite/gdb.arch/i386-pkru.exp | 71 ++++++
> gdb/x86-linux-nat.c | 20 +-
> 59 files changed, 2382 insertions(+), 510 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
> rename gdb/features/i386/{amd64-avx512-linux.xml => amd64-avx-avx512-linux.xml} (84%) create mode 100644 gdb/features/i386/amd64-avx-avx512.c
> rename gdb/features/i386/{amd64-avx512.xml => amd64-avx-avx512.xml} (89%) rename gdb/features/i386/{amd64-avx512-linux.c => amd64-avx-mpx-avx512-pku-linux.c} (97%) create mode 100644 gdb/features/i386/amd64-avx-mpx-avx512-pku-linux.xml
> rename gdb/features/i386/{amd64-avx512.c => amd64-avx-mpx-avx512-pku.c} (98%) create mode 100644 gdb/features/i386/amd64-avx-mpx-avx512-pku.xml
> create mode 100644 gdb/features/i386/i386-avx-avx512-linux.c
> rename gdb/features/i386/{i386-avx512-linux.xml => i386-avx-avx512-linux.xml} (84%) create mode 100644 gdb/features/i386/i386-avx-avx512.c
> rename gdb/features/i386/{i386-avx512.xml => i386-avx-avx512.xml} (89%) rename gdb/features/i386/{i386-avx512-linux.c => i386-avx-mpx-avx512-pku-linux.c} (96%) create mode 100644 gdb/features/i386/i386-avx-mpx-avx512-pku-linux.xml
> rename gdb/features/i386/{i386-avx512.c => i386-avx-mpx-avx512-pku.c} (96%) create mode 100644 gdb/features/i386/i386-avx-mpx-avx512-pku.xml
> 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
>
> --
> 1.8.4.2
>

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