On 7/1/25 17:05, Phil Dennis-Jordan wrote:


On Sat, 28 Dec 2024 at 11:48, Phil Dennis-Jordan <p...@philjordan.eu <mailto:p...@philjordan.eu>> wrote:



    On Fri, 27 Dec 2024 at 21:24, Philippe Mathieu-Daudé
    <phi...@linaro.org <mailto:phi...@linaro.org>> wrote:

        When the KVM accelerator is selected, the Kconfig ARM_GIC key
        selects the KVM GIC implementation (ARM_GIC_KVM).
        For other accelerators (TCG, HVF, ...), select the generic
        implementation.

        Signed-off-by: Philippe Mathieu-Daudé <phi...@linaro.org
        <mailto:phi...@linaro.org>>
        ---
          hw/intc/Kconfig | 2 +-
          1 file changed, 1 insertion(+), 1 deletion(-)

        diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig
        index 7547528f2c2..762139d8df3 100644
        --- a/hw/intc/Kconfig
        +++ b/hw/intc/Kconfig
        @@ -23,7 +23,7 @@ config APIC

          config ARM_GIC
              bool
        -    select ARM_GICV3 if TCG
        +    select ARM_GICV3 if !KVM


    Wouldn't this disable the ARM_GICV3 by default when building with --
    enable-tcg --enable-kvm? And then there would be no GIC available
    when running the built QEMU in TCG mode. (Bear with me, I'm a
    relative Meson newbie.)



OK, I've managed to answer my own question now by setting up a RPi5 with aarch64 RPOS and building QEMU on that with --enable-kvm --enable-tcg. With patch 1/2 applied on current upstream master, I get:

$ build/qemu-system-aarch64 -accel tcg -M virt,gic-version=3 -smp 4 -m 4G
/[runs successfully]/

with 2/2 applied as well:

$ build/qemu-system-aarch64 -accel tcg -M virt,gic-version=3 -smp 4 -m 4G
qemu-system-aarch64: tcg does not support GICv3 emulation
$

In other words, with the proposed change, ARM_GICV3 is indeed deselected if KVM is selected even if TCG is also selected.


Possibly very basic question: is there any support for kernel- irqchip=off on aarch64/KVM? If yes, don't we need ARM_GICV3 in that case anyway, so we should drop any accel dependency on it in the first place?

Cc'ing Alex & Gustavo who are more familiar with GIC devices.

If we definitely don't need the software GIC in KVM-only builds, I guess we're down to listing each accel that needs it individually. Is that:

select ARM_GICV3 if TCG || HVF || NVMM || WHPX || XEN_EMU || XEN

or can we drop any of those? Have I missed anything? What about QTest?



Reply via email to