qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] hw/arm/virt: kvm: allow gicv3 by default if v2 cannot work
@ 2020-03-01 10:40 Eric Auger
  2020-03-01 10:40 ` [PATCH v2 1/6] hw/arm/virt: Document 'max' value in gic-version property description Eric Auger
                   ` (6 more replies)
  0 siblings, 7 replies; 16+ messages in thread
From: Eric Auger @ 2020-03-01 10:40 UTC (permalink / raw)
  To: eric.auger.pro, eric.auger, qemu-devel, qemu-arm, peter.maydell
  Cc: maz, drjones

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



^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2020-03-02  7:56 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-01 10:40 [PATCH v2 0/6] hw/arm/virt: kvm: allow gicv3 by default if v2 cannot work Eric Auger
2020-03-01 10:40 ` [PATCH v2 1/6] hw/arm/virt: Document 'max' value in gic-version property description Eric Auger
2020-03-01 17:39   ` Richard Henderson
2020-03-01 10:40 ` [PATCH v2 2/6] hw/arm/virt: Use VIRT_GIC_VERSION defines Eric Auger
2020-03-01 17:44   ` Richard Henderson
2020-03-01 10:40 ` [PATCH v2 3/6] hw/arm/virt: Introduce finalize_gic_version() Eric Auger
2020-03-01 17:48   ` Richard Henderson
2020-03-01 10:40 ` [PATCH v2 4/6] target/arm/kvm: Let kvm_arm_vgic_probe() return a bitmap Eric Auger
2020-03-01 17:50   ` Richard Henderson
2020-03-01 10:40 ` [PATCH v2 5/6] hw/arm/virt: kvm: Check the chosen gic version is supported by the host Eric Auger
2020-03-01 17:56   ` Richard Henderson
2020-03-01 18:02     ` Auger Eric
2020-03-01 10:40 ` [PATCH v2 6/6] hw/arm/virt: kvm: allow gicv3 by default if v2 cannot work Eric Auger
2020-03-01 17:58   ` Richard Henderson
2020-03-02  7:54   ` Andrew Jones
2020-03-02  7:55 ` [PATCH v2 0/6] " Andrew Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).