On Sun, Mar 01, 2020 at 11:40:34AM +0100, Eric Auger wrote: > At the moment if the end-user does not specify the gic-version along > with KVM acceleration, v2 is set by default. However most of the > systems now have GICv3 and sometimes they do not support GICv2 > compatibility. In that case we now end up with the following error: > > "qemu-system-aarch64: Initialization of device kvm-arm-gic failed: > error creating in-kernel VGIC: No such device > Perhaps the host CPU does not support GICv2?" > > since "1904f9b5f1 hw/intc/arm_gic_kvm: Don't assume kernel can > provide a GICv2", which already allowed to output an explicit error > message. > > This series keeps the default v2 selection in all cases except > in the KVM accelerated mode when v2 cannot work: > - either because the host does not support v2 in-kernel emulation or > - because more than 8 vcpus were requested. > > Those cases did not work anyway so we do not break any compatibility. > Now we get v3 selected in such a case. > > Best Regards > > Eric > > This series can be found at: > https://github.com/eauger/qemu/tree/v4.2.0-gic-version-v2 > > History: > RFC -> v2: > - 1904f9b5f1 hw/intc/arm_gic_kvm: Don't assume kernel can > provide a GICv2" now has landed upstream > - Fix gic-version description > - Introduce finalize_gic_version and use switch/cases > - take into account smp value > > Eric Auger (6): > hw/arm/virt: Document 'max' value in gic-version property description > hw/arm/virt: Use VIRT_GIC_VERSION defines > hw/arm/virt: Introduce finalize_gic_version() > target/arm/kvm: Let kvm_arm_vgic_probe() return a bitmap > hw/arm/virt: kvm: Check the chosen gic version is supported by the > host > hw/arm/virt: kvm: allow gicv3 by default if v2 cannot work > > hw/arm/virt.c | 124 +++++++++++++++++++++++++++++++----------- > include/hw/arm/virt.h | 8 ++- > target/arm/kvm.c | 14 +++-- > target/arm/kvm_arm.h | 3 + > 4 files changed, 110 insertions(+), 39 deletions(-) > > -- > 2.20.1 > >
With Richard's enum suggestions For the series Reviewed-by: Andrew Jones <drjo...@redhat.com>