On Wed, 12 Aug 2026 at 21:27, Richard Henderson <[email protected]> wrote: > > On 8/12/26 13:03, Richard Henderson wrote: > > While 39a8c3941e may have fixed WHPX, it certainly didn't help KVM: > > > > $ QTEST_QEMU_BINARY=./qemu-system-aarch64 ./tests/qtest/arm-cpu-features > > ... > > qemu-system-aarch64: unknown type 'kvm-arm-gicv3' > > > > That patch did remove a test for TARGET_AARCH64, which is fine because > > it has been a long time since we supported KVM for AArch32. > > > > Fixes: 39a8c3941e ("hw/intc/arm_gicv3: Fix ARM_GICV3 dependency for KVM / > > WHPX") > > Signed-off-by: Richard Henderson <[email protected]> > > --- > > hw/intc/meson.build | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/hw/intc/meson.build b/hw/intc/meson.build > > index a1401cb521..faf63a0145 100644 > > --- a/hw/intc/meson.build > > +++ b/hw/intc/meson.build > > @@ -48,7 +48,7 @@ specific_ss.add(when: 'CONFIG_ARM_GIC_KVM', if_true: > > files('arm_gic_kvm.c')) > > specific_ss.add(when: ['CONFIG_WHPX', 'CONFIG_ARM_GICV3'], if_true: > > files('arm_gicv3_whpx.c')) > > specific_ss.add(when: ['CONFIG_HVF', 'CONFIG_ARM_GICV3'], if_true: > > files('arm_gicv3_hvf.c')) > > stub_ss.add(files('arm_gicv3_hvf_stub.c')) > > -specific_ss.add(when: ['CONFIG_ARM_GIC_KVM', 'CONFIG_ARM_GICV3'], if_true: > > files('arm_gicv3_kvm.c', 'arm_gicv3_its_kvm.c')) > > +specific_ss.add(when: 'CONFIG_ARM_GIC_KVM', if_true: > > files('arm_gicv3_kvm.c', 'arm_gicv3_its_kvm.c')) > > arm_common_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('armv7m_nvic.c')) > > specific_ss.add(when: 'CONFIG_GRLIB', if_true: files('grlib_irqmp.c')) > > specific_ss.add(when: 'CONFIG_IOAPIC', if_true: files('ioapic.c')) > > Alternately, we need to adjust > > config ARM_GIC > bool > select ARM_GICV3 if TCG > select ARM_GIC_KVM if KVM > select MSI_NONBROKEN > > Though I'm not sure how ARM_GICV3 + WHPX would ever get selected? > > Alternately, given the very tight connection between all GIC revisions and > the cpu, how > does it make sense for any version of GIC to be non-selected? Just remove > all the GIC > configury and include it with just TARGET_AARCH64 (not vs TARGET_ARM, but vs > any other > valid virtualization host).
I think the rationale behind the kconfig handling here is that for a KVM-only build we would prefer not to compile in all the emulated GICv3 code (only the base class and the KVM subclass), so that in that more security-sensitive configuration a user/distro/etc can be confident that all that emulation code is not in the binary at all. thanks -- PMM
