[PATCH v3 0/4] KVM: SVM: GIF and EFER.SVME are independent

Yosry Ahmed posted 4 patches 2 months, 2 weeks ago
arch/x86/kvm/svm/nested.c                     |   6 +-
arch/x86/kvm/svm/svm.c                        |   1 -
tools/testing/selftests/kvm/Makefile.kvm      |   2 +-
...d_state_test.c => nested_set_state_test.c} | 128 ++++++++++++++++--
4 files changed, 120 insertions(+), 17 deletions(-)
rename tools/testing/selftests/kvm/x86/{vmx_set_nested_state_test.c => nested_set_state_test.c} (70%)
[PATCH v3 0/4] KVM: SVM: GIF and EFER.SVME are independent
Posted by Yosry Ahmed 2 months, 2 weeks ago
Clearing EFER.SVME is not architected to set GIF, so GIF may be clear
even when EFER.SVME is clear.

This is covered in the discussion at [1].

v2 -> v3:
- Keep setting GIF when force-leaving nested (Sean).
- Moved the relevant selftests patches from the series at [2] here
  (Sean).

v2: https://lore.kernel.org/kvm/20251009223153.3344555-1-jmattson@google.com/

[1]https://lore.kernel.org/all/5b8787b8-16e9-13dc-7fca-0dc441d673f9@citrix.com/
[2]https://lore.kernel.org/kvm/20251021074736.1324328-1-yosry.ahmed@linux.dev/

Jim Mattson (2):
  KVM: SVM: Allow KVM_SET_NESTED_STATE to clear GIF when SVME==0
  KVM: SVM: Don't set GIF when clearing EFER.SVME

Yosry Ahmed (2):
  KVM: selftests: Use TEST_ASSERT_EQ() in test_vmx_nested_state()
  KVM: selftests: Extend vmx_set_nested_state_test to cover SVM

 arch/x86/kvm/svm/nested.c                     |   6 +-
 arch/x86/kvm/svm/svm.c                        |   1 -
 tools/testing/selftests/kvm/Makefile.kvm      |   2 +-
 ...d_state_test.c => nested_set_state_test.c} | 128 ++++++++++++++++--
 4 files changed, 120 insertions(+), 17 deletions(-)
 rename tools/testing/selftests/kvm/x86/{vmx_set_nested_state_test.c => nested_set_state_test.c} (70%)


base-commit: 115d5de2eef32ac5cd488404b44b38789362dbe6
-- 
2.52.0.rc2.455.g230fcf2819-goog
Re: [PATCH v3 0/4] KVM: SVM: GIF and EFER.SVME are independent
Posted by Sean Christopherson 3 weeks, 5 days ago
On Fri, 21 Nov 2025 20:47:59 +0000, Yosry Ahmed wrote:
> Clearing EFER.SVME is not architected to set GIF, so GIF may be clear
> even when EFER.SVME is clear.
> 
> This is covered in the discussion at [1].
> 
> v2 -> v3:
> - Keep setting GIF when force-leaving nested (Sean).
> - Moved the relevant selftests patches from the series at [2] here
>   (Sean).
> 
> [...]

Applied to kvm-x86 svm, with my suggested fixup and the order of 1 and 2
swapped.  Thanks!

[1/4] KVM: SVM: Don't set GIF when clearing EFER.SVME
      https://github.com/kvm-x86/linux/commit/8312f1b9dd71
[2/4] KVM: SVM: Allow KVM_SET_NESTED_STATE to clear GIF when SVME==0
      https://github.com/kvm-x86/linux/commit/6f4d3ebc24c6
[3/4] KVM: selftests: Use TEST_ASSERT_EQ() in test_vmx_nested_state()
      https://github.com/kvm-x86/linux/commit/bda6ae6f2966
[4/4] KVM: selftests: Extend vmx_set_nested_state_test to cover SVM
      https://github.com/kvm-x86/linux/commit/ca2eccb953fd

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