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

Reply via email to