[PATCH 0/2] KVM: selftests: Fix sync_regs race tests on AMD

Sean Christopherson posted 2 patches 2 years, 5 months ago
.../selftests/kvm/x86_64/sync_regs_test.c       | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
[PATCH 0/2] KVM: selftests: Fix sync_regs race tests on AMD
Posted by Sean Christopherson 2 years, 5 months ago
The recently introduced sync_regs subtests to detect TOCTOU bugs hang on
AMD because KVM synthesizes INIT on triple fault shutdown (because AMD says
the VMCB is undefined after shutdown).  Fix it by loading known good state
if a shutdown occurs.

Patch two explicitly injects #UD as the "good" vector so that the test
doesn't rely on KVM inadvertantly setting the vector to #DE (old, buggy
behavior).

Sean Christopherson (2):
  KVM: selftests: Reload "good" vCPU state if vCPU hits shutdown
  KVM: selftests: Explicit set #UD when *potentially* injecting
    exception

 .../selftests/kvm/x86_64/sync_regs_test.c       | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)


base-commit: b6d40d24bb2eae6d4c2d4799ddbffcf7bae663db
-- 
2.42.0.rc1.204.g551eb34607-goog
Re: [PATCH 0/2] KVM: selftests: Fix sync_regs race tests on AMD
Posted by Sean Christopherson 2 years, 5 months ago
On Thu, 17 Aug 2023 16:34:28 -0700, Sean Christopherson wrote:
> The recently introduced sync_regs subtests to detect TOCTOU bugs hang on
> AMD because KVM synthesizes INIT on triple fault shutdown (because AMD says
> the VMCB is undefined after shutdown).  Fix it by loading known good state
> if a shutdown occurs.
> 
> Patch two explicitly injects #UD as the "good" vector so that the test
> doesn't rely on KVM inadvertantly setting the vector to #DE (old, buggy
> behavior).
> 
> [...]

Applied to kvm-x86 selftests.

[1/2] KVM: selftests: Reload "good" vCPU state if vCPU hits shutdown
      https://github.com/kvm-x86/linux/commit/5002b112a5ad
[2/2] KVM: selftests: Explicit set #UD when *potentially* injecting exception
      https://github.com/kvm-x86/linux/commit/02dc2543e379

--
https://github.com/kvm-x86/linux/tree/next
https://github.com/kvm-x86/linux/tree/fixes