Hi all,
I tried running a KVM guest on Arm GEM5 Linux, but GEM5 panicked at https://gem5.googlesource.com/public/gem5/+/refs/heads/stable/src/dev/arm/vgic.cc#126.
The comment above this panic
said KVM does not use auto-EOI of HW interrupts via real GIC.
However, in later Linux version, function kvm_vgic_map_phys_irq
would set the HW bit to 1, as in https://gem5.googlesource.com/arm/linux/+/refs/heads/gem5/v4.14/virt/kvm/arm/vgic/vgic.c#406.
I've tested gem5/v4.3, which is the oldest version branch of repo arm/linux in gem5 source. In https://gem5.googlesource.com/arm/linux/+/refs/heads/gem5/v4.3/virt/kvm/arm/vgic.c#1778, the code does not explicitly set HW to 1, but the virtual irq is also mapped to physical irq, and the GEM5 would panic at the same place.
Does this mean I could only boot host Linux of very old version without kvm_vgic_map_phys_irq
? I wonder that, without the support of kvm_vgic_map_phys_irq
, the performance would suffer. The EOI of virtual irq would bring about an additional VM exit.
Thanks!
Yifan Tan