mbox series

[v2,0/4] x86: Add test cases for LAM

Message ID 20230319082225.14302-1-binbin.wu@linux.intel.com (mailing list archive)
Headers show
Series x86: Add test cases for LAM | expand

Message

Binbin Wu March 19, 2023, 8:22 a.m. UTC
Intel Linear-address masking (LAM) [1], modifies the checking that is applied to
*64-bit* linear addresses, allowing software to use of the untranslated address
bits for metadata.

The patch series add test cases for LAM:

Patch 1 makes change to HOST_CR3 tests in vmx.
If LAM is supported, VM entry allows CR3.LAM_U48 (bit 62) and CR3.LAM_U57
(bit 61) to be set in CR3 field. Change the test result expectations when
setting CR3.LAM_U48 or CR3.LAM_U57 on vmlaunch tests when LAM is supported.

Patch 2~4 add test cases for LAM supervisor mode and user mode, including:
- For supervisor mode
  CR4.LAM_SUP toggle
  Memory/MMIO access with tagged pointer
  INVLPG
  INVPCID
  INVVPID (also used to cover VMX instruction vmexit path)
- For user mode
  CR3 LAM bits toggle 
  Memory/MMIO access with tagged pointer

[1] Intel ISE https://cdrdv2.intel.com/v1/dl/getContent/671368
    Chapter Linear Address Masking (LAM)

---
Changelog
v1 --> v2:
Add cases to test INVLPG, INVPCID, INVVPID with LAM_SUP
Add cases to test LAM_{U48,U57}

Binbin Wu (3):
  x86: Allow setting of CR3 LAM bits if LAM supported
  x86: Add test cases for LAM_{U48,U57}
  x86: Add test case for INVVPID with LAM

Robert Hoo (1):
  x86: Add test case for LAM_SUP

 lib/x86/processor.h |   7 +
 x86/Makefile.x86_64 |   1 +
 x86/lam.c           | 340 ++++++++++++++++++++++++++++++++++++++++++++
 x86/unittests.cfg   |  10 ++
 x86/vmx_tests.c     |  79 +++++++++-
 5 files changed, 436 insertions(+), 1 deletion(-)
 create mode 100644 x86/lam.c


base-commit: e3c5c3ef2524c58023073c0fadde2e8ae3c04ec6

Comments

Binbin Wu March 19, 2023, 8:32 a.m. UTC | #1
Sorry for forgetting adding kvm-unit-test prefix. I will resend with the 
patch series with the right prefix.


On 3/19/2023 4:22 PM, Binbin Wu wrote:
> Intel Linear-address masking (LAM) [1], modifies the checking that is applied to
> *64-bit* linear addresses, allowing software to use of the untranslated address
> bits for metadata.
>
> The patch series add test cases for LAM:
>
> Patch 1 makes change to HOST_CR3 tests in vmx.
> If LAM is supported, VM entry allows CR3.LAM_U48 (bit 62) and CR3.LAM_U57
> (bit 61) to be set in CR3 field. Change the test result expectations when
> setting CR3.LAM_U48 or CR3.LAM_U57 on vmlaunch tests when LAM is supported.
>
> Patch 2~4 add test cases for LAM supervisor mode and user mode, including:
> - For supervisor mode
>    CR4.LAM_SUP toggle
>    Memory/MMIO access with tagged pointer
>    INVLPG
>    INVPCID
>    INVVPID (also used to cover VMX instruction vmexit path)
> - For user mode
>    CR3 LAM bits toggle
>    Memory/MMIO access with tagged pointer
>
> [1] Intel ISE https://cdrdv2.intel.com/v1/dl/getContent/671368
>      Chapter Linear Address Masking (LAM)
>
> ---
> Changelog
> v1 --> v2:
> Add cases to test INVLPG, INVPCID, INVVPID with LAM_SUP
> Add cases to test LAM_{U48,U57}
>
> Binbin Wu (3):
>    x86: Allow setting of CR3 LAM bits if LAM supported
>    x86: Add test cases for LAM_{U48,U57}
>    x86: Add test case for INVVPID with LAM
>
> Robert Hoo (1):
>    x86: Add test case for LAM_SUP
>
>   lib/x86/processor.h |   7 +
>   x86/Makefile.x86_64 |   1 +
>   x86/lam.c           | 340 ++++++++++++++++++++++++++++++++++++++++++++
>   x86/unittests.cfg   |  10 ++
>   x86/vmx_tests.c     |  79 +++++++++-
>   5 files changed, 436 insertions(+), 1 deletion(-)
>   create mode 100644 x86/lam.c
>
>
> base-commit: e3c5c3ef2524c58023073c0fadde2e8ae3c04ec6
Huang, Kai April 6, 2023, 11:39 a.m. UTC | #2
On Sun, 2023-03-19 at 16:22 +0800, Binbin Wu wrote:
> Intel Linear-address masking (LAM) [1], modifies the checking that is applied to
> *64-bit* linear addresses, allowing software to use of the untranslated address
> bits for metadata.
> 
> The patch series add test cases for LAM:
> 

I think you should just merge this series to the patchset which enables LAM
feature?
Sean Christopherson April 6, 2023, 4:09 p.m. UTC | #3
On Thu, Apr 06, 2023, Huang, Kai wrote:
> On Sun, 2023-03-19 at 16:22 +0800, Binbin Wu wrote:
> > Intel Linear-address masking (LAM) [1], modifies the checking that is applied to
> > *64-bit* linear addresses, allowing software to use of the untranslated address
> > bits for metadata.
> > 
> > The patch series add test cases for LAM:
> > 
> 
> I think you should just merge this series to the patchset which enables LAM
> feature?

No, please keep them separate.  A lore link in the KUT series is more than
sufficient, and even that isn't really necesary.  b4 and other tooling get
confused by series that contain patches for two (or more) different repositories,
i.e. posting everything in one bundle makes my life harder, not easier.
Binbin Wu April 10, 2023, 3:24 p.m. UTC | #4
On 4/6/2023 7:39 PM, Huang, Kai wrote:
> On Sun, 2023-03-19 at 16:22 +0800, Binbin Wu wrote:
>> Intel Linear-address masking (LAM) [1], modifies the checking that is applied to
>> *64-bit* linear addresses, allowing software to use of the untranslated address
>> bits for metadata.
>>
>> The patch series add test cases for LAM:
>>
> I think you should just merge this series to the patchset which enables LAM
> feature?

These are kvm-unit-tests cases, I forgot to add the prefix when I sent 
the patch set.
I then resent the patch set with the kvm-unit-tests prefix.


>
Huang, Kai April 12, 2023, 10:08 a.m. UTC | #5
On Thu, 2023-04-06 at 09:09 -0700, Sean Christopherson wrote:
> On Thu, Apr 06, 2023, Huang, Kai wrote:
> > On Sun, 2023-03-19 at 16:22 +0800, Binbin Wu wrote:
> > > Intel Linear-address masking (LAM) [1], modifies the checking that is applied to
> > > *64-bit* linear addresses, allowing software to use of the untranslated address
> > > bits for metadata.
> > > 
> > > The patch series add test cases for LAM:
> > > 
> > 
> > I think you should just merge this series to the patchset which enables LAM
> > feature?
> 
> No, please keep them separate.  A lore link in the KUT series is more than
> sufficient, and even that isn't really necesary.  b4 and other tooling get
> confused by series that contain patches for two (or more) different repositories,
> i.e. posting everything in one bundle makes my life harder, not easier.

Sorry I missed this is for KUT.