From: Michael Sturm <michael.sturm@intel.com>
To: mark.kettenis@xs4all.nl, palves@redhat.com, eliz@gnu.org
Cc: gdb-patches@sourceware.org, michael.sturm@intel.com
Subject: [PATCH v2 0/5] Add support for PKRU register to GDB and GDBServer.
Date: Thu, 01 Dec 2016 13:39:00 -0000 [thread overview]
Message-ID: <1480599538-30543-1-git-send-email-michael.sturm@intel.com> (raw)
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 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 | 6 +
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 | 128 ++++------
.../{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 | 95 +++++++
gdb/testsuite/gdb.arch/i386-pkru.exp | 73 ++++++
gdb/x86-linux-nat.c | 20 +-
59 files changed, 2387 insertions(+), 532 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
next reply other threads:[~2016-12-01 13:39 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-01 13:39 Michael Sturm [this message]
2016-12-01 13:39 ` [PATCH v2 4/5] Add target description for avx-avx512 Michael Sturm
2016-12-01 13:39 ` [PATCH v2 2/5] Change xstate_bv handling to use 8 bytes of data Michael Sturm
2016-12-02 1:26 ` Luis Machado
2016-12-05 13:52 ` Sturm, Michael
2016-12-01 13:39 ` [PATCH v2 5/5] Add support for Intel PKRU register to GDB and GDBserver Michael Sturm
2016-12-01 17:35 ` Eli Zaretskii
2016-12-02 2:00 ` Luis Machado
2016-12-06 10:54 ` Sturm, Michael
2016-12-09 17:16 ` Pedro Alves
2016-12-19 9:17 ` Sturm, Michael
2016-12-01 13:39 ` [PATCH v2 3/5] Rename target descriptions to reflect actual content of description Michael Sturm
2016-12-01 13:39 ` [PATCH v2 1/5] Sync up x86-gcc-cpuid.h with cpuid.h from gcc-6 branch Michael Sturm
2016-12-02 1:17 ` Luis Machado
2016-12-05 13:42 ` Sturm, Michael
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1480599538-30543-1-git-send-email-michael.sturm@intel.com \
--to=michael.sturm@intel.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=mark.kettenis@xs4all.nl \
--cc=palves@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox