mbox series

[v2,0/9] SEV Kernel Selftests

Message ID 20240816192310.117456-1-pratikrajesh.sampat@amd.com (mailing list archive)
Headers show
Series SEV Kernel Selftests | expand

Message

Pratik R. Sampat Aug. 16, 2024, 7:23 p.m. UTC
This series primarily introduces SEV-SNP test for the kernel selftest
framework. It tests boot, ioctl, pre fault, and fallocate in various
combinations to exercise both positive and negative launch flow paths.

Patch 1 - Adds a wrapper for the ioctl calls that decouple ioctl and
asserts which enables the use of negative test cases. No functional
change intended.
Patch 2 - Extend the sev smoke tests to use the SNP specific ioctl
calls and sets up memory to boot a SNP guest VM
Patch 3 - Adds SNP to shutdown testing
Patch 4, 5 - Tests the ioctl path for SEV, SEV-ES and SNP
Patch 6 - Adds support for SNP in KVM_SEV_INIT2 tests
Patch 7,8,9 - Enable Prefault tests for SEV, SEV-ES and SNP

The patchset is rebased on top of kvm/queue and and over the
"KVM: selftests: Add SEV-ES shutdown test" patch.
https://lore.kernel.org/kvm/20240709182936.146487-1-pgonda@google.com/

v2:
1. Add SMT parsing check to populate SNP policy flags
2. Extend Peter Gonda's shutdown test to include SNP
3. Introduce new tests for prefault which include exercising prefault,
   fallocate, hole-punch in various combinations.
4. Decouple ioctl patch reworked to introduce private variants of the
   the functions that call into the ioctl. Also reordered the patch for
   it to arrive first so that new APIs are not written right after
   their introduction.
5. General cleanups - adding comments, avoiding local booleans, better
   error message. Suggestions incorporated from Peter, Tom, and Sean.

RFC:
https://lore.kernel.org/kvm/20240710220540.188239-1-pratikrajesh.sampat@amd.com/

Michael Roth (2):
  KVM: selftests: Add interface to manually flag protected/encrypted
    ranges
  KVM: selftests: Add a CoCo-specific test for KVM_PRE_FAULT_MEMORY

Pratik R. Sampat (7):
  KVM: selftests: Decouple SEV ioctls from asserts
  KVM: selftests: Add a basic SNP smoke test
  KVM: selftests: Add SNP to shutdown testing
  KVM: selftests: SEV IOCTL test
  KVM: selftests: SNP IOCTL test
  KVM: selftests: SEV-SNP test for KVM_SEV_INIT2
  KVM: selftests: Interleave fallocate for KVM_PRE_FAULT_MEMORY

 tools/testing/selftests/kvm/Makefile          |   1 +
 .../testing/selftests/kvm/include/kvm_util.h  |  13 +
 .../selftests/kvm/include/x86_64/processor.h  |   1 +
 .../selftests/kvm/include/x86_64/sev.h        |  76 +++-
 tools/testing/selftests/kvm/lib/kvm_util.c    |  53 ++-
 .../selftests/kvm/lib/x86_64/processor.c      |   6 +-
 tools/testing/selftests/kvm/lib/x86_64/sev.c  | 190 +++++++-
 .../kvm/x86_64/coco_pre_fault_memory_test.c   | 421 ++++++++++++++++++
 .../selftests/kvm/x86_64/sev_init2_tests.c    |  13 +
 .../selftests/kvm/x86_64/sev_smoke_test.c     | 298 ++++++++++++-
 10 files changed, 1024 insertions(+), 48 deletions(-)
 create mode 100644 tools/testing/selftests/kvm/x86_64/coco_pre_fault_memory_test.c

Comments

Peter Gonda Aug. 19, 2024, 7:43 p.m. UTC | #1
On Fri, Aug 16, 2024 at 1:23 PM Pratik R. Sampat
<pratikrajesh.sampat@amd.com> wrote:
>
> This series primarily introduces SEV-SNP test for the kernel selftest
> framework. It tests boot, ioctl, pre fault, and fallocate in various
> combinations to exercise both positive and negative launch flow paths.
>
> Patch 1 - Adds a wrapper for the ioctl calls that decouple ioctl and
> asserts which enables the use of negative test cases. No functional
> change intended.
> Patch 2 - Extend the sev smoke tests to use the SNP specific ioctl
> calls and sets up memory to boot a SNP guest VM
> Patch 3 - Adds SNP to shutdown testing
> Patch 4, 5 - Tests the ioctl path for SEV, SEV-ES and SNP
> Patch 6 - Adds support for SNP in KVM_SEV_INIT2 tests
> Patch 7,8,9 - Enable Prefault tests for SEV, SEV-ES and SNP
>
> The patchset is rebased on top of kvm/queue and and over the
> "KVM: selftests: Add SEV-ES shutdown test" patch.
> https://lore.kernel.org/kvm/20240709182936.146487-1-pgonda@google.com/
>
> v2:
> 1. Add SMT parsing check to populate SNP policy flags
> 2. Extend Peter Gonda's shutdown test to include SNP

Thanks for this.

> 3. Introduce new tests for prefault which include exercising prefault,
>    fallocate, hole-punch in various combinations.
> 4. Decouple ioctl patch reworked to introduce private variants of the
>    the functions that call into the ioctl. Also reordered the patch for
>    it to arrive first so that new APIs are not written right after
>    their introduction.
> 5. General cleanups - adding comments, avoiding local booleans, better
>    error message. Suggestions incorporated from Peter, Tom, and Sean.
>

Tested the entire series

Tested-by: Peter Gonda <pgonda@google.com>
Aithal, Srikanth Aug. 27, 2024, 5:44 a.m. UTC | #2
On 8/17/2024 12:53 AM, Pratik R. Sampat wrote:
> This series primarily introduces SEV-SNP test for the kernel selftest
> framework. It tests boot, ioctl, pre fault, and fallocate in various
> combinations to exercise both positive and negative launch flow paths.
> 
> Patch 1 - Adds a wrapper for the ioctl calls that decouple ioctl and
> asserts which enables the use of negative test cases. No functional
> change intended.
> Patch 2 - Extend the sev smoke tests to use the SNP specific ioctl
> calls and sets up memory to boot a SNP guest VM
> Patch 3 - Adds SNP to shutdown testing
> Patch 4, 5 - Tests the ioctl path for SEV, SEV-ES and SNP
> Patch 6 - Adds support for SNP in KVM_SEV_INIT2 tests
> Patch 7,8,9 - Enable Prefault tests for SEV, SEV-ES and SNP
> 
> The patchset is rebased on top of kvm/queue and and over the
> "KVM: selftests: Add SEV-ES shutdown test" patch.
> https://lore.kernel.org/kvm/20240709182936.146487-1-pgonda@google.com/
> 
> v2:
> 1. Add SMT parsing check to populate SNP policy flags
> 2. Extend Peter Gonda's shutdown test to include SNP
> 3. Introduce new tests for prefault which include exercising prefault,
>     fallocate, hole-punch in various combinations.
> 4. Decouple ioctl patch reworked to introduce private variants of the
>     the functions that call into the ioctl. Also reordered the patch for
>     it to arrive first so that new APIs are not written right after
>     their introduction.
> 5. General cleanups - adding comments, avoiding local booleans, better
>     error message. Suggestions incorporated from Peter, Tom, and Sean.
> 

Tested-by: Srikanth Aithal <sraithal@amd.com>