[PATCH v6 0/4] x86/tests: Add tests for AMD SEV-ES #VC handling

Vasant Karasulli
2022-03-18T09:45:40Z

Hi All,

This is the version 6 of the patch written to add tests for
AMD SEV-ES #VC handling. This version attempts to
address review comments to the previous version of the patch in
https://lore.kernel.org/kvm/20220208162623.18368-1-vkarasulli@suse.de/.

Changes in this version:
1. The patch in the previous version is split into 4 parts.
2. Constants in function sev_es_nae_mmio are replaced by macros.

Thanks,
Vasant

Vasant Karasulli (4):
x86/tests: Add Kconfig options for testing AMD SEV related features.
x86/tests: Add KUnit based tests to validate Linux's VC handling for
instructions cpuid and wbinvd. These tests: 1. install a kretprobe
on the #VC handler (sev_es_ghcb_hv_call, to access GHCB
before/after the resulting VMGEXIT). 2. trigger an NAE by executing
either cpuid or wbinvd. 3. check that the kretprobe was hit with the
right exit_code available in GHCB.
x86/tests: Add KUnit based tests to validate Linux's VC handling for
instructions accessing registers such as MSR and DR7. These tests:
1. install a kretprobe on the #VC handler (sev_es_ghcb_hv_call,
to access GHCB before/after the resulting VMGEXIT). 2.
trigger an NAE by accessing either MSR or DR7. 3. check that the
kretprobe was hit with the right exit_code available in GHCB.
x86/tests: Add KUnit based tests to validate Linux's VC handling for
IO instructions. These tests: 1. install a kretprobe
on the #VC handler (sev_es_ghcb_hv_call, to access GHCB
before/after the resulting VMGEXIT). 2. trigger an NAE by
issuing an IO instruction. 3. check that the kretprobe was
hit with the right exit_code available in GHCB.

arch/x86/Kbuild | 2 +
arch/x86/Kconfig.debug | 16 ++++
arch/x86/kernel/Makefile | 7 ++
arch/x86/tests/Makefile | 3 +
arch/x86/tests/sev-test-vc.c | 155 +++++++++++++++++++++++++++++++++++
5 files changed, 183 insertions(+)
create mode 100644 arch/x86/tests/Makefile
create mode 100644 arch/x86/tests/sev-test-vc.c

base-commit: 09688c0166e76ce2fb85e86b9d99be8b0084cdf9
prerequisite-patch-id: b74bc39d7ca69ad86b5f9090047c44ab039f4622
prerequisite-patch-id: a53a291b59b4ceaffa25a9a08dfa08b5a78a01b9
--
2.32.0