]> git.ipfire.org Git - thirdparty/linux.git/commit
KVM: selftests: Test TPR / CR8 sync and interrupt masking
authorMaciej S. Szmigiero <maciej.szmigiero@oracle.com>
Fri, 5 Dec 2025 22:49:37 +0000 (14:49 -0800)
committerSean Christopherson <seanjc@google.com>
Thu, 8 Jan 2026 18:50:50 +0000 (10:50 -0800)
commit0b28194c4c8e3a6c2552bfa6451f71b1879dd61f
treeb25c7d081c0566e7efd3c8a1f2912cd719b6776f
parent9ace4753a5202b02191d54e9fdf7f9e3d02b85eb
KVM: selftests: Test TPR / CR8 sync and interrupt masking

Add a few extra TPR / CR8 tests to x86's xapic_state_test to see if:
  * TPR is 0 on reset,
  * TPR, PPR and CR8 are equal inside the guest,
  * TPR and CR8 read equal by the host after a VMExit
  * TPR borderline values set by the host correctly mask interrupts in the
    guest.

These hopefully will catch the most obvious cases of improper TPR sync or
interrupt masking.

Do these tests both in x2APIC and xAPIC modes.
The x2APIC mode uses SELF_IPI register to trigger interrupts to give it a
bit of exercise too.

Signed-off-by: Maciej S. Szmigiero <maciej.szmigiero@oracle.com>
Acked-by: Naveen N Rao (AMD) <naveen@kernel.org>
[sean: put code in separate test]
Link: https://patch.msgid.link/20251205224937.428122-1-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
tools/testing/selftests/kvm/Makefile.kvm
tools/testing/selftests/kvm/include/x86/apic.h
tools/testing/selftests/kvm/x86/xapic_tpr_test.c [new file with mode: 0644]