diff mbox series

[RFC,kvm-unit-tests,4/4] x86/apic: Add test for xapic-split

Message ID c13882ced3c713058c9a1ccf425f396319832b5d.1740479886.git.naveen@kernel.org (mailing list archive)
State New
Headers show
Series x86/apic: SVM AVIC tests and some cleanups | expand

Commit Message

Naveen N Rao (AMD) Feb. 25, 2025, 10:40 a.m. UTC
The current apic-split test actually uses x2apic. Rename the same, and
add a separate test for xapic in split irqchip mode.

Signed-off-by: Naveen N Rao (AMD) <naveen@kernel.org>
---
 x86/unittests.cfg | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Sean Christopherson March 4, 2025, 8:33 p.m. UTC | #1
On Tue, Feb 25, 2025, Naveen N Rao (AMD) wrote:
> The current apic-split test actually uses x2apic. Rename the same, and
> add a separate test for xapic in split irqchip mode.

I would actually prefer we go in the opposite direction and rip out the testcases
that explicitly specify kernel_irqchip=split, not add more.  And instead either
defer to the user via ACCEL=, or make it a top-level switch.

While it would be nice for unittests.cfg to cover more scenarios by "default",
the flip side of doing so is that makes it annoying for an end user to do more,
and gives the false impression that the configurations in unittests.cfg are the
only ones that are worth testing.

E.g. svm_npt fails with kernel_irqchip=split on x2AVIC hardware due to test bugs
(patches incoming), hyperv_connections fails due to what is effectively a
QEMU bug that also got hoisted into KVM[1], and vmx_apic_passthrough_tpr_threshold_test
also fails with kernel_irqchip=split due to a KVM bug that happened to be masked
by another KVM bug with the in-kernel PIT emulation.

[1] https://lore.kernel.org/all/Z8ZBzEJ7--VWKdWd@google.com
[2] https://lore.kernel.org/all/202502271500.28201544-lkp@intel.com
diff mbox series

Patch

diff --git a/x86/unittests.cfg b/x86/unittests.cfg
index b057b59b1e30..35646e320620 100644
--- a/x86/unittests.cfg
+++ b/x86/unittests.cfg
@@ -7,7 +7,7 @@ 
 # arch = i386|x86_64
 ##############################################################################
 
-[apic-split]
+[x2apic-split]
 file = apic.flat
 smp = 2
 extra_params = -cpu qemu64,+x2apic,+tsc-deadline -machine kernel_irqchip=split
@@ -23,6 +23,13 @@  arch = x86_64
 timeout = 30
 groups = apic
 
+[xapic-split]
+file = apic.flat
+smp = 2
+extra_params = -cpu qemu64,-x2apic,+tsc-deadline -machine kernel_irqchip=split
+arch = x86_64
+groups = apic
+
 # Hide x2APIC and don't create a Programmable Interval Timer (PIT, a.k.a 8254)
 # to allow testing SVM's AVIC, which is disabled if either is exposed to the guest.
 [xapic]