linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
@ 2020-03-03  4:50 Mingbo Zhang
  2020-03-03  7:17 ` Adrian Hunter
  2020-03-26  1:31 ` Masami Hiramatsu
  0 siblings, 2 replies; 13+ messages in thread
From: Mingbo Zhang @ 2020-03-03  4:50 UTC (permalink / raw)
  To: x86
  Cc: Mingbo Zhang, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	H. Peter Anvin, Masami Hiramatsu, Adrian Hunter,
	Arnaldo Carvalho de Melo, Andi Kleen, Josh Poimboeuf,
	linux-kernel

Intel CET instructions are not described in the Intel SDM. When trying to
get the instruction length, the following instructions get wrong (missing
ModR/M byte).

RDSSPD r32
RSDDPQ r64
ENDBR32
ENDBR64
WRSSD r/m32, r32
WRSSQ r/m64, r64

RDSSPD/Q and ENDBR32/64 use the same opcode (f3 0f 1e) slot, which is
described in SDM as Reserved-NOP with no encoding characters, and got an
empty slot in the opcode map. WRSSD/Q (0f 38 f6) also got an empty slot.

Signed-off-by: Mingbo Zhang <whensungoes@gmail.com>
---
 arch/x86/lib/x86-opcode-map.txt       | 4 ++--
 tools/arch/x86/lib/x86-opcode-map.txt | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt
index 53adc1762ec0..0e3434c882d4 100644
--- a/arch/x86/lib/x86-opcode-map.txt
+++ b/arch/x86/lib/x86-opcode-map.txt
@@ -366,7 +366,7 @@ AVXcode: 1
 1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv
 1c: Grp20 (1A),(1C)
 1d:
-1e:
+1e: NOP Gy,Gy
 1f: NOP Ev
 # 0x0f 0x20-0x2f
 20: MOV Rd,Cd
@@ -804,7 +804,7 @@ f1: MOVBE My,Gy | MOVBE Mw,Gw (66) | CRC32 Gd,Ey (F2) | CRC32 Gd,Ew (66&F2)
 f2: ANDN Gy,By,Ey (v)
 f3: Grp17 (1A)
 f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v)
-f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
+f6: NOP Ey,Gy | ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
 f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
 f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3)
 f9: MOVDIRI My,Gy
diff --git a/tools/arch/x86/lib/x86-opcode-map.txt b/tools/arch/x86/lib/x86-opcode-map.txt
index 53adc1762ec0..0e3434c882d4 100644
--- a/tools/arch/x86/lib/x86-opcode-map.txt
+++ b/tools/arch/x86/lib/x86-opcode-map.txt
@@ -366,7 +366,7 @@ AVXcode: 1
 1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv
 1c: Grp20 (1A),(1C)
 1d:
-1e:
+1e: NOP Gy,Gy
 1f: NOP Ev
 # 0x0f 0x20-0x2f
 20: MOV Rd,Cd
@@ -804,7 +804,7 @@ f1: MOVBE My,Gy | MOVBE Mw,Gw (66) | CRC32 Gd,Ey (F2) | CRC32 Gd,Ew (66&F2)
 f2: ANDN Gy,By,Ey (v)
 f3: Grp17 (1A)
 f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v)
-f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
+f6: NOP Ey,Gy | ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
 f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
 f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3)
 f9: MOVDIRI My,Gy
-- 
2.25.1


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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-03  4:50 [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions Mingbo Zhang
@ 2020-03-03  7:17 ` Adrian Hunter
  2020-03-03  7:20   ` Adrian Hunter
  2020-03-16  7:10   ` Adrian Hunter
  2020-03-26  1:31 ` Masami Hiramatsu
  1 sibling, 2 replies; 13+ messages in thread
From: Adrian Hunter @ 2020-03-03  7:17 UTC (permalink / raw)
  To: Mingbo Zhang, x86
  Cc: Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Masami Hiramatsu, Arnaldo Carvalho de Melo, Andi Kleen,
	Josh Poimboeuf, linux-kernel, Yu-cheng Yu

On 3/03/20 6:50 am, Mingbo Zhang wrote:
> Intel CET instructions are not described in the Intel SDM. When trying to
> get the instruction length, the following instructions get wrong (missing
> ModR/M byte).
> 
> RDSSPD r32
> RSDDPQ r64
> ENDBR32
> ENDBR64
> WRSSD r/m32, r32
> WRSSQ r/m64, r64
> 
> RDSSPD/Q and ENDBR32/64 use the same opcode (f3 0f 1e) slot, which is
> described in SDM as Reserved-NOP with no encoding characters, and got an
> empty slot in the opcode map. WRSSD/Q (0f 38 f6) also got an empty slot.

We have patches for that:

	https://lore.kernel.org/lkml/20200204171425.28073-1-yu-cheng.yu@intel.com/

But they have not yet been applied.  Arnaldo, could you take them?

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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-03  7:17 ` Adrian Hunter
@ 2020-03-03  7:20   ` Adrian Hunter
  2020-03-16  7:10   ` Adrian Hunter
  1 sibling, 0 replies; 13+ messages in thread
From: Adrian Hunter @ 2020-03-03  7:20 UTC (permalink / raw)
  To: Mingbo Zhang, x86
  Cc: Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Masami Hiramatsu, Arnaldo Carvalho de Melo, Andi Kleen,
	Josh Poimboeuf, linux-kernel, Yu-cheng Yu

On 3/03/20 9:17 am, Adrian Hunter wrote:
> On 3/03/20 6:50 am, Mingbo Zhang wrote:
>> Intel CET instructions are not described in the Intel SDM. When trying to
>> get the instruction length, the following instructions get wrong (missing
>> ModR/M byte).
>>
>> RDSSPD r32
>> RSDDPQ r64
>> ENDBR32
>> ENDBR64
>> WRSSD r/m32, r32
>> WRSSQ r/m64, r64
>>
>> RDSSPD/Q and ENDBR32/64 use the same opcode (f3 0f 1e) slot, which is
>> described in SDM as Reserved-NOP with no encoding characters, and got an
>> empty slot in the opcode map. WRSSD/Q (0f 38 f6) also got an empty slot.
> 
> We have patches for that:
> 
> 	https://lore.kernel.org/lkml/20200204171425.28073-1-yu-cheng.yu@intel.com/
> 
> But they have not yet been applied.  Arnaldo, could you take them?
> 

For reference:

Subject: [PATCH 0/2] Introduce Control-flow Enforcement opcodes
Date: Tue,  4 Feb 2020 09:14:23 -0800
Message-ID: <20200204171425.28073-1-yu-cheng.yu@intel.com> (raw)

Control-flow Enforcement (CET) introduces 10 new instructions [1].  Add
them to the opcode map.  This series has been separated from the CET
patches [2] for ease of review.

[1] Detailed information on CET can be found in "Intel 64 and IA-32
    Architectures Software Developer's Manual":

    https://software.intel.com/en-us/download/intel-64-and-ia-32-
    architectures-sdm-combined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4

[2] CET patches:

    https://lkml.kernel.org/r/20190813205225.12032-1-yu-cheng.yu@intel.com/
    https://lkml.kernel.org/r/20190813205359.12196-1-yu-cheng.yu@intel.com/

Adrian Hunter (1):
  x86/insn: perf tools: Add CET instructions to the new instructions
    test

Yu-cheng Yu (1):
  x86/insn: Add Control-flow Enforcement (CET) instructions to the
    opcode map

 arch/x86/lib/x86-opcode-map.txt              |  17 +-
 tools/arch/x86/lib/x86-opcode-map.txt        |  17 +-
 tools/perf/arch/x86/tests/insn-x86-dat-32.c  | 112 +++++++++
 tools/perf/arch/x86/tests/insn-x86-dat-64.c  | 196 +++++++++++++++
 tools/perf/arch/x86/tests/insn-x86-dat-src.c | 236 +++++++++++++++++++
 5 files changed, 566 insertions(+), 12 deletions(-)

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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-03  7:17 ` Adrian Hunter
  2020-03-03  7:20   ` Adrian Hunter
@ 2020-03-16  7:10   ` Adrian Hunter
  2020-03-25  6:10     ` Adrian Hunter
  1 sibling, 1 reply; 13+ messages in thread
From: Adrian Hunter @ 2020-03-16  7:10 UTC (permalink / raw)
  To: Mingbo Zhang, x86
  Cc: Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Masami Hiramatsu, Arnaldo Carvalho de Melo, Andi Kleen,
	Josh Poimboeuf, linux-kernel, Yu-cheng Yu, Jiri Olsa

On 3/03/20 9:17 am, Adrian Hunter wrote:
> On 3/03/20 6:50 am, Mingbo Zhang wrote:
>> Intel CET instructions are not described in the Intel SDM. When trying to
>> get the instruction length, the following instructions get wrong (missing
>> ModR/M byte).
>>
>> RDSSPD r32
>> RSDDPQ r64
>> ENDBR32
>> ENDBR64
>> WRSSD r/m32, r32
>> WRSSQ r/m64, r64
>>
>> RDSSPD/Q and ENDBR32/64 use the same opcode (f3 0f 1e) slot, which is
>> described in SDM as Reserved-NOP with no encoding characters, and got an
>> empty slot in the opcode map. WRSSD/Q (0f 38 f6) also got an empty slot.
> 
> We have patches for that:
> 
> 	https://lore.kernel.org/lkml/20200204171425.28073-1-yu-cheng.yu@intel.com/
> 
> But they have not yet been applied.  Arnaldo, could you take them?
> 

Any takers?

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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-16  7:10   ` Adrian Hunter
@ 2020-03-25  6:10     ` Adrian Hunter
  0 siblings, 0 replies; 13+ messages in thread
From: Adrian Hunter @ 2020-03-25  6:10 UTC (permalink / raw)
  To: Mingbo Zhang, x86
  Cc: Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Masami Hiramatsu, Arnaldo Carvalho de Melo, Andi Kleen,
	Josh Poimboeuf, linux-kernel, Yu-cheng Yu, Jiri Olsa

On 16/03/20 9:10 am, Adrian Hunter wrote:
> On 3/03/20 9:17 am, Adrian Hunter wrote:
>> On 3/03/20 6:50 am, Mingbo Zhang wrote:
>>> Intel CET instructions are not described in the Intel SDM. When trying to
>>> get the instruction length, the following instructions get wrong (missing
>>> ModR/M byte).
>>>
>>> RDSSPD r32
>>> RSDDPQ r64
>>> ENDBR32
>>> ENDBR64
>>> WRSSD r/m32, r32
>>> WRSSQ r/m64, r64
>>>
>>> RDSSPD/Q and ENDBR32/64 use the same opcode (f3 0f 1e) slot, which is
>>> described in SDM as Reserved-NOP with no encoding characters, and got an
>>> empty slot in the opcode map. WRSSD/Q (0f 38 f6) also got an empty slot.
>>
>> We have patches for that:
>>
>> 	https://lore.kernel.org/lkml/20200204171425.28073-1-yu-cheng.yu@intel.com/
>>
>> But they have not yet been applied.  Arnaldo, could you take them?
>>
> 
> Any takers?
> 

:-)

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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-03  4:50 [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions Mingbo Zhang
  2020-03-03  7:17 ` Adrian Hunter
@ 2020-03-26  1:31 ` Masami Hiramatsu
  2020-03-26  5:09   ` Adrian Hunter
  1 sibling, 1 reply; 13+ messages in thread
From: Masami Hiramatsu @ 2020-03-26  1:31 UTC (permalink / raw)
  To: Mingbo Zhang, Arnaldo Carvalho de Melo
  Cc: x86, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	H. Peter Anvin, Masami Hiramatsu, Adrian Hunter,
	Arnaldo Carvalho de Melo, Andi Kleen, Josh Poimboeuf,
	linux-kernel

Hi,

On Mon,  2 Mar 2020 23:50:30 -0500
Mingbo Zhang <whensungoes@gmail.com> wrote:

> Intel CET instructions are not described in the Intel SDM. When trying to
> get the instruction length, the following instructions get wrong (missing
> ModR/M byte).
> 
> RDSSPD r32
> RSDDPQ r64
> ENDBR32
> ENDBR64
> WRSSD r/m32, r32
> WRSSQ r/m64, r64
> 
> RDSSPD/Q and ENDBR32/64 use the same opcode (f3 0f 1e) slot, which is
> described in SDM as Reserved-NOP with no encoding characters, and got an
> empty slot in the opcode map. WRSSD/Q (0f 38 f6) also got an empty slot.
> 

This looks good to me. BTW, wouldn't we need to add decode test cases to perf?

Acked-by: Masami Hiramatsu <mhiramat@kernel.org>

Thank you,

> Signed-off-by: Mingbo Zhang <whensungoes@gmail.com>
> ---
>  arch/x86/lib/x86-opcode-map.txt       | 4 ++--
>  tools/arch/x86/lib/x86-opcode-map.txt | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/x86/lib/x86-opcode-map.txt b/arch/x86/lib/x86-opcode-map.txt
> index 53adc1762ec0..0e3434c882d4 100644
> --- a/arch/x86/lib/x86-opcode-map.txt
> +++ b/arch/x86/lib/x86-opcode-map.txt
> @@ -366,7 +366,7 @@ AVXcode: 1
>  1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv
>  1c: Grp20 (1A),(1C)
>  1d:
> -1e:
> +1e: NOP Gy,Gy
>  1f: NOP Ev
>  # 0x0f 0x20-0x2f
>  20: MOV Rd,Cd
> @@ -804,7 +804,7 @@ f1: MOVBE My,Gy | MOVBE Mw,Gw (66) | CRC32 Gd,Ey (F2) | CRC32 Gd,Ew (66&F2)
>  f2: ANDN Gy,By,Ey (v)
>  f3: Grp17 (1A)
>  f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v)
> -f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
> +f6: NOP Ey,Gy | ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
>  f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
>  f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3)
>  f9: MOVDIRI My,Gy
> diff --git a/tools/arch/x86/lib/x86-opcode-map.txt b/tools/arch/x86/lib/x86-opcode-map.txt
> index 53adc1762ec0..0e3434c882d4 100644
> --- a/tools/arch/x86/lib/x86-opcode-map.txt
> +++ b/tools/arch/x86/lib/x86-opcode-map.txt
> @@ -366,7 +366,7 @@ AVXcode: 1
>  1b: BNDCN Gv,Ev (F2) | BNDMOV Ev,Gv (66) | BNDMK Gv,Ev (F3) | BNDSTX Ev,Gv
>  1c: Grp20 (1A),(1C)
>  1d:
> -1e:
> +1e: NOP Gy,Gy
>  1f: NOP Ev
>  # 0x0f 0x20-0x2f
>  20: MOV Rd,Cd
> @@ -804,7 +804,7 @@ f1: MOVBE My,Gy | MOVBE Mw,Gw (66) | CRC32 Gd,Ey (F2) | CRC32 Gd,Ew (66&F2)
>  f2: ANDN Gy,By,Ey (v)
>  f3: Grp17 (1A)
>  f5: BZHI Gy,Ey,By (v) | PEXT Gy,By,Ey (F3),(v) | PDEP Gy,By,Ey (F2),(v)
> -f6: ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
> +f6: NOP Ey,Gy | ADCX Gy,Ey (66) | ADOX Gy,Ey (F3) | MULX By,Gy,rDX,Ey (F2),(v)
>  f7: BEXTR Gy,Ey,By (v) | SHLX Gy,Ey,By (66),(v) | SARX Gy,Ey,By (F3),(v) | SHRX Gy,Ey,By (F2),(v)
>  f8: MOVDIR64B Gv,Mdqq (66) | ENQCMD Gv,Mdqq (F2) | ENQCMDS Gv,Mdqq (F3)
>  f9: MOVDIRI My,Gy
> -- 
> 2.25.1
> 


-- 
Masami Hiramatsu <mhiramat@kernel.org>

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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-26  1:31 ` Masami Hiramatsu
@ 2020-03-26  5:09   ` Adrian Hunter
  2020-03-26 13:55     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 13+ messages in thread
From: Adrian Hunter @ 2020-03-26  5:09 UTC (permalink / raw)
  To: Masami Hiramatsu, Mingbo Zhang, Arnaldo Carvalho de Melo
  Cc: x86, Thomas Gleixner, Ingo Molnar, Borislav Petkov,
	H. Peter Anvin, Arnaldo Carvalho de Melo, Andi Kleen,
	Josh Poimboeuf, linux-kernel

On 26/03/20 3:31 am, Masami Hiramatsu wrote:
> Hi,
> 
> On Mon,  2 Mar 2020 23:50:30 -0500
> Mingbo Zhang <whensungoes@gmail.com> wrote:
> 
>> Intel CET instructions are not described in the Intel SDM. When trying to
>> get the instruction length, the following instructions get wrong (missing
>> ModR/M byte).
>>
>> RDSSPD r32
>> RSDDPQ r64
>> ENDBR32
>> ENDBR64
>> WRSSD r/m32, r32
>> WRSSQ r/m64, r64
>>
>> RDSSPD/Q and ENDBR32/64 use the same opcode (f3 0f 1e) slot, which is
>> described in SDM as Reserved-NOP with no encoding characters, and got an
>> empty slot in the opcode map. WRSSD/Q (0f 38 f6) also got an empty slot.
>>
> 
> This looks good to me. BTW, wouldn't we need to add decode test cases to perf?
> 
> Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
> 
> Thank you,
> 

We have correct patches that you ack'ed for CET here:

	https://lore.kernel.org/lkml/20200204171425.28073-1-yu-cheng.yu@intel.com/

But they have not yet been applied.

Sorry for the confusion.

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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-26  5:09   ` Adrian Hunter
@ 2020-03-26 13:55     ` Arnaldo Carvalho de Melo
  2020-03-26 14:19       ` Hunter, Adrian
  0 siblings, 1 reply; 13+ messages in thread
From: Arnaldo Carvalho de Melo @ 2020-03-26 13:55 UTC (permalink / raw)
  To: Adrian Hunter
  Cc: Masami Hiramatsu, Mingbo Zhang, Arnaldo Carvalho de Melo, x86,
	Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Andi Kleen, Josh Poimboeuf, linux-kernel

Em Thu, Mar 26, 2020 at 07:09:45AM +0200, Adrian Hunter escreveu:
> On 26/03/20 3:31 am, Masami Hiramatsu wrote:
> > Hi,
> > 
> > On Mon,  2 Mar 2020 23:50:30 -0500
> > Mingbo Zhang <whensungoes@gmail.com> wrote:
> > 
> >> Intel CET instructions are not described in the Intel SDM. When trying to
> >> get the instruction length, the following instructions get wrong (missing
> >> ModR/M byte).
> >>
> >> RDSSPD r32
> >> RSDDPQ r64
> >> ENDBR32
> >> ENDBR64
> >> WRSSD r/m32, r32
> >> WRSSQ r/m64, r64
> >>
> >> RDSSPD/Q and ENDBR32/64 use the same opcode (f3 0f 1e) slot, which is
> >> described in SDM as Reserved-NOP with no encoding characters, and got an
> >> empty slot in the opcode map. WRSSD/Q (0f 38 f6) also got an empty slot.
> >>
> > 
> > This looks good to me. BTW, wouldn't we need to add decode test cases to perf?
> > 
> > Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
> > 
> > Thank you,
> > 
> 
> We have correct patches that you ack'ed for CET here:
> 
> 	https://lore.kernel.org/lkml/20200204171425.28073-1-yu-cheng.yu@intel.com/
> 
> But they have not yet been applied.
> 
> Sorry for the confusion.

I'll collect them, thanks for pointing this out.

- Arnaldo


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

* RE: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-26 13:55     ` Arnaldo Carvalho de Melo
@ 2020-03-26 14:19       ` Hunter, Adrian
  2020-03-26 14:57         ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 13+ messages in thread
From: Hunter, Adrian @ 2020-03-26 14:19 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Masami Hiramatsu, Mingbo Zhang, Arnaldo Carvalho de Melo, x86,
	Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Andi Kleen, Josh Poimboeuf, linux-kernel

> -----Original Message-----
> From: Arnaldo Carvalho de Melo <acme@redhat.com>
> Sent: Thursday, March 26, 2020 3:56 PM
> To: Hunter, Adrian <adrian.hunter@intel.com>
> Cc: Masami Hiramatsu <mhiramat@kernel.org>; Mingbo Zhang
> <whensungoes@gmail.com>; Arnaldo Carvalho de Melo
> <acme@kernel.org>; x86@kernel.org; Thomas Gleixner
> <tglx@linutronix.de>; Ingo Molnar <mingo@redhat.com>; Borislav Petkov
> <bp@alien8.de>; H. Peter Anvin <hpa@zytor.com>; Andi Kleen
> <ak@linux.intel.com>; Josh Poimboeuf <jpoimboe@redhat.com>; linux-
> kernel@vger.kernel.org
> Subject: Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET
> instructions
> 
> Em Thu, Mar 26, 2020 at 07:09:45AM +0200, Adrian Hunter escreveu:
> > On 26/03/20 3:31 am, Masami Hiramatsu wrote:
> > > Hi,
> > >
> > > On Mon,  2 Mar 2020 23:50:30 -0500
> > > Mingbo Zhang <whensungoes@gmail.com> wrote:
> > >
> > >> Intel CET instructions are not described in the Intel SDM. When
> > >> trying to get the instruction length, the following instructions
> > >> get wrong (missing ModR/M byte).
> > >>
> > >> RDSSPD r32
> > >> RSDDPQ r64
> > >> ENDBR32
> > >> ENDBR64
> > >> WRSSD r/m32, r32
> > >> WRSSQ r/m64, r64
> > >>
> > >> RDSSPD/Q and ENDBR32/64 use the same opcode (f3 0f 1e) slot, which
> > >> is described in SDM as Reserved-NOP with no encoding characters,
> > >> and got an empty slot in the opcode map. WRSSD/Q (0f 38 f6) also got
> an empty slot.
> > >>
> > >
> > > This looks good to me. BTW, wouldn't we need to add decode test cases
> to perf?
> > >
> > > Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
> > >
> > > Thank you,
> > >
> >
> > We have correct patches that you ack'ed for CET here:
> >
> >
> > https://lore.kernel.org/lkml/20200204171425.28073-1-yu-cheng.yu@intel.
> > com/
> >
> > But they have not yet been applied.
> >
> > Sorry for the confusion.
> 
> I'll collect them, thanks for pointing this out.

The patches are in tip courtesy of Borislav Petkov thank you!


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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-26 14:19       ` Hunter, Adrian
@ 2020-03-26 14:57         ` Arnaldo Carvalho de Melo
  2020-03-26 15:01           ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 13+ messages in thread
From: Arnaldo Carvalho de Melo @ 2020-03-26 14:57 UTC (permalink / raw)
  To: Hunter, Adrian
  Cc: Arnaldo Carvalho de Melo, Masami Hiramatsu, Mingbo Zhang, x86,
	Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Andi Kleen, Josh Poimboeuf, linux-kernel

Em Thu, Mar 26, 2020 at 02:19:07PM +0000, Hunter, Adrian escreveu:
> > -----Original Message-----
> > From: Arnaldo Carvalho de Melo <acme@redhat.com>
> > Sent: Thursday, March 26, 2020 3:56 PM
> > To: Hunter, Adrian <adrian.hunter@intel.com>
> > Cc: Masami Hiramatsu <mhiramat@kernel.org>; Mingbo Zhang
> > <whensungoes@gmail.com>; Arnaldo Carvalho de Melo
> > <acme@kernel.org>; x86@kernel.org; Thomas Gleixner
> > <tglx@linutronix.de>; Ingo Molnar <mingo@redhat.com>; Borislav Petkov
> > <bp@alien8.de>; H. Peter Anvin <hpa@zytor.com>; Andi Kleen
> > <ak@linux.intel.com>; Josh Poimboeuf <jpoimboe@redhat.com>; linux-
> > kernel@vger.kernel.org
> > Subject: Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET
> > instructions
> > 
> > Em Thu, Mar 26, 2020 at 07:09:45AM +0200, Adrian Hunter escreveu:
> > > On 26/03/20 3:31 am, Masami Hiramatsu wrote:
> > > > Hi,
> > > >
> > > > On Mon,  2 Mar 2020 23:50:30 -0500
> > > > Mingbo Zhang <whensungoes@gmail.com> wrote:
> > > >
> > > >> Intel CET instructions are not described in the Intel SDM. When
> > > >> trying to get the instruction length, the following instructions
> > > >> get wrong (missing ModR/M byte).
> > > >>
> > > >> RDSSPD r32
> > > >> RSDDPQ r64
> > > >> ENDBR32
> > > >> ENDBR64
> > > >> WRSSD r/m32, r32
> > > >> WRSSQ r/m64, r64
> > > >>
> > > >> RDSSPD/Q and ENDBR32/64 use the same opcode (f3 0f 1e) slot, which
> > > >> is described in SDM as Reserved-NOP with no encoding characters,
> > > >> and got an empty slot in the opcode map. WRSSD/Q (0f 38 f6) also got
> > an empty slot.
> > > >>
> > > >
> > > > This looks good to me. BTW, wouldn't we need to add decode test cases
> > to perf?
> > > >
> > > > Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
> > > >
> > > > Thank you,
> > > >
> > >
> > > We have correct patches that you ack'ed for CET here:
> > >
> > >
> > > https://lore.kernel.org/lkml/20200204171425.28073-1-yu-cheng.yu@intel.
> > > com/
> > >
> > > But they have not yet been applied.
> > >
> > > Sorry for the confusion.
> > 
> > I'll collect them, thanks for pointing this out.
> 
> The patches are in tip courtesy of Borislav Petkov thank you!

Ok, thanks Borislav,

- Arnaldo

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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-26 14:57         ` Arnaldo Carvalho de Melo
@ 2020-03-26 15:01           ` Arnaldo Carvalho de Melo
  2020-03-26 17:36             ` Adrian Hunter
  0 siblings, 1 reply; 13+ messages in thread
From: Arnaldo Carvalho de Melo @ 2020-03-26 15:01 UTC (permalink / raw)
  To: Hunter, Adrian
  Cc: Arnaldo Carvalho de Melo, Masami Hiramatsu, Mingbo Zhang, x86,
	Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Andi Kleen, Josh Poimboeuf, linux-kernel

Em Thu, Mar 26, 2020 at 11:57:26AM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Thu, Mar 26, 2020 at 02:19:07PM +0000, Hunter, Adrian escreveu:
> > > > But they have not yet been applied.

> > > > Sorry for the confusion.

> > > I'll collect them, thanks for pointing this out.

> > The patches are in tip courtesy of Borislav Petkov thank you!
 
> Ok, thanks Borislav,

I didn't notice because it didn't made into tip/perf/core :-\ In what
branch is it btw, I couldn't find any cset with substr summary "Add
Control-flow Enforcement" in, tip/master also doesn't have it.

- Arnaldo

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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-26 15:01           ` Arnaldo Carvalho de Melo
@ 2020-03-26 17:36             ` Adrian Hunter
  2020-03-26 20:35               ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 13+ messages in thread
From: Adrian Hunter @ 2020-03-26 17:36 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Arnaldo Carvalho de Melo, Masami Hiramatsu, Mingbo Zhang, x86,
	Thomas Gleixner, Ingo Molnar, Borislav Petkov, H. Peter Anvin,
	Andi Kleen, Josh Poimboeuf, linux-kernel

On 26/03/20 5:01 pm, Arnaldo Carvalho de Melo wrote:
> Em Thu, Mar 26, 2020 at 11:57:26AM -0300, Arnaldo Carvalho de Melo escreveu:
>> Em Thu, Mar 26, 2020 at 02:19:07PM +0000, Hunter, Adrian escreveu:
>>>>> But they have not yet been applied.
> 
>>>>> Sorry for the confusion.
> 
>>>> I'll collect them, thanks for pointing this out.
> 
>>> The patches are in tip courtesy of Borislav Petkov thank you!
>  
>> Ok, thanks Borislav,
> 
> I didn't notice because it didn't made into tip/perf/core :-\ In what
> branch is it btw, I couldn't find any cset with substr summary "Add
> Control-flow Enforcement" in, tip/master also doesn't have it.
> 
> - Arnaldo
> 


x86/misc


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

* Re: [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions
  2020-03-26 17:36             ` Adrian Hunter
@ 2020-03-26 20:35               ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 13+ messages in thread
From: Arnaldo Carvalho de Melo @ 2020-03-26 20:35 UTC (permalink / raw)
  To: Adrian Hunter
  Cc: Masami Hiramatsu, Mingbo Zhang, x86, Thomas Gleixner,
	Ingo Molnar, Borislav Petkov, H. Peter Anvin, Andi Kleen,
	Josh Poimboeuf, linux-kernel

Em Thu, Mar 26, 2020 at 07:36:27PM +0200, Adrian Hunter escreveu:
> On 26/03/20 5:01 pm, Arnaldo Carvalho de Melo wrote:
> > Em Thu, Mar 26, 2020 at 11:57:26AM -0300, Arnaldo Carvalho de Melo escreveu:
> >> Em Thu, Mar 26, 2020 at 02:19:07PM +0000, Hunter, Adrian escreveu:
> >>>>> But they have not yet been applied.
> > 
> >>>>> Sorry for the confusion.
> > 
> >>>> I'll collect them, thanks for pointing this out.
> > 
> >>> The patches are in tip courtesy of Borislav Petkov thank you!
> >  
> >> Ok, thanks Borislav,
> > 
> > I didn't notice because it didn't made into tip/perf/core :-\ In what
> > branch is it btw, I couldn't find any cset with substr summary "Add
> > Control-flow Enforcement" in, tip/master also doesn't have it.
> > 
> > - Arnaldo
> > 
> 
> 
> x86/misc

Right, he told me, thanks,

- Arnaldo

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

end of thread, other threads:[~2020-03-26 20:36 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-03  4:50 [PATCH] x86: perf: insn: Tweak opcode map for Intel CET instructions Mingbo Zhang
2020-03-03  7:17 ` Adrian Hunter
2020-03-03  7:20   ` Adrian Hunter
2020-03-16  7:10   ` Adrian Hunter
2020-03-25  6:10     ` Adrian Hunter
2020-03-26  1:31 ` Masami Hiramatsu
2020-03-26  5:09   ` Adrian Hunter
2020-03-26 13:55     ` Arnaldo Carvalho de Melo
2020-03-26 14:19       ` Hunter, Adrian
2020-03-26 14:57         ` Arnaldo Carvalho de Melo
2020-03-26 15:01           ` Arnaldo Carvalho de Melo
2020-03-26 17:36             ` Adrian Hunter
2020-03-26 20:35               ` Arnaldo Carvalho de Melo

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).