Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1219195

[PATCH 22/31] x86/insn: perf tools: Add new memory protection keys instructions

From Arnaldo Carvalho de Melo <acme@kernel.org>
Newsgroups linux.kernel
Subject [PATCH 22/31] x86/insn: perf tools: Add new memory protection keys instructions
Date 2015-09-04 19:00 +0200
Message-ID <q52vi-7V0-57@gated-at.bofh.it> (permalink)
References <q52lz-7Jv-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


From: Adrian Hunter <adrian.hunter@intel.com>

Add rdpkru and wrpkru to the op code map and the perf tools new
instructions test.  In the case of the test, only the bytes can be
tested at the moment since binutils doesn't support the instructions
yet.  To run the test:

  $ tools/perf/perf test "x86 ins"
  39: Test x86 instruction decoder - new instructions          : Ok

Or to see the details:

  $ tools/perf/perf test -v "x86 ins" 2>&1 | grep pkru

For information about rdpkru and wrpkru, refer the Intel SDM.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Qiaowei Ren <qiaowei.ren@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1441196131-20632-7-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 arch/x86/lib/x86-opcode-map.txt                     | 2 +-
 tools/perf/tests/insn-x86.c                         | 4 ++++
 tools/perf/util/intel-pt-decoder/x86-opcode-map.txt | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt
index f4f0451a301e..5a9705ed9139 100644
--- a/arch/x86/lib/x86-opcode-map.txt
+++ b/arch/x86/lib/x86-opcode-map.txt
@@ -885,7 +885,7 @@ GrpTable: Grp7
 2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B)
 3: LIDT Ms
 4: SMSW Mw/Rv
-5:
+5: rdpkru (110),(11B) | wrpkru (111),(11B)
 6: LMSW Ew
 7: INVLPG Mb | SWAPGS (o64),(000),(11B) | RDTSCP (001),(11B)
 EndTable
diff --git a/tools/perf/tests/insn-x86.c b/tools/perf/tests/insn-x86.c
index 0e126a099874..5c49eec81349 100644
--- a/tools/perf/tests/insn-x86.c
+++ b/tools/perf/tests/insn-x86.c
@@ -17,11 +17,15 @@ struct test_data {
 
 struct test_data test_data_32[] = {
 #include "insn-x86-dat-32.c"
+	{{0x0f, 0x01, 0xee}, 3, 0, NULL, NULL, "0f 01 ee             \trdpkru"},
+	{{0x0f, 0x01, 0xef}, 3, 0, NULL, NULL, "0f 01 ef             \twrpkru"},
 	{{0}, 0, 0, NULL, NULL, NULL},
 };
 
 struct test_data test_data_64[] = {
 #include "insn-x86-dat-64.c"
+	{{0x0f, 0x01, 0xee}, 3, 0, NULL, NULL, "0f 01 ee             \trdpkru"},
+	{{0x0f, 0x01, 0xef}, 3, 0, NULL, NULL, "0f 01 ef             \twrpkru"},
 	{{0}, 0, 0, NULL, NULL, NULL},
 };
 
diff --git a/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt b/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt
index f4f0451a301e..5a9705ed9139 100644
--- a/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt
+++ b/tools/perf/util/intel-pt-decoder/x86-opcode-map.txt
@@ -885,7 +885,7 @@ GrpTable: Grp7
 2: LGDT Ms | XGETBV (000),(11B) | XSETBV (001),(11B) | VMFUNC (100),(11B) | XEND (101)(11B) | XTEST (110)(11B)
 3: LIDT Ms
 4: SMSW Mw/Rv
-5:
+5: rdpkru (110),(11B) | wrpkru (111),(11B)
 6: LMSW Ew
 7: INVLPG Mb | SWAPGS (o64),(000),(11B) | RDTSCP (001),(11B)
 EndTable
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[GIT PULL 00/31] perf/core improvements and fixes Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 23/31] x86/insn: perf tools: Add new xsave instructions Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 08/31] perf tools: Move tracing_path stuff under same namespace Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 30/31] perf probe: Print deleted events in cmd_probe() Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 29/31] perf probe: Split del_perf_probe_events() Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 11/31] tools lib api fs: Add STR and PATH_MAX macros to fs object Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 14/31] tools lib api fs: Add tracefs into fs.c object Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 01/31] perf tools: Always use non inlined file name for 'srcfile' sort key Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 19/31] x86/insn: perf tools: Pedantically tweak opcode map for MPX instructions Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 25/31] perf intel-pt: Add support for PERF_RECORD_SWITCH Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 28/31] perf probe: Move print logic into cmd_probe() Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 18:50 +0200
  [PATCH 16/31] tools lib api fs: Add FSTYPE__configured() method Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 24/31] perf session: Don't call dump_sample() when evsel is NULL Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  Re: [PATCH 10/31] tools lib api fs: Move debugfs__strerror_open into  tracing_path.c object Raphaël Beamonte <raphael.beamonte@gmail.com> - 2015-09-04 19:00 +0200
    Re: [PATCH 10/31] tools lib api fs: Move debugfs__strerror_open into  tracing_path.c object Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> - 2015-09-04 22:40 +0200
  [PATCH 06/31] perf stat: Quieten failed to read counter message Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 27/31] perf probe: Link trace_probe_event into perf_probe_event Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 09/31] tools lib api fs: Move tracing_path interface into api/fs/tracing_path.c Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 31/31] perf trace: Add read/write to the file group Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 22/31] x86/insn: perf tools: Add new memory protection keys instructions Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 04/31] perf cpumap: Factor out functions to get core_id and socket_id Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 12/31] tools lib api fs: Move SYSFS_MAGIC PROC_SUPER_MAGIC into fs.c Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 15/31] tools lib api fs: Add FSTYPE__mount() method Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
    Re: [PATCH 15/31] tools lib api fs: Add FSTYPE__mount() method Raphaël Beamonte <raphael.beamonte@gmail.com> - 2015-09-04 19:10 +0200
  [PATCH 10/31] tools lib api fs: Move debugfs__strerror_open into tracing_path.c object Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 07/31] perf tools: Remove mountpoint arg from perf_debugfs_mount Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 13/31] tools lib api fs: Add debugfs into fs.c object Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 26/31] perf probe: Split add_perf_probe_events() Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200
  [PATCH 05/31] perf tools: Store the cpu socket and core ids in the perf.data header Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-09-04 19:00 +0200

csiph-web