On Tue, Jan 28, 2020 at 10:52:50AM +0000, Peter Maydell wrote: > On Tue, 28 Jan 2020 at 10:47, Auger Eric <eric.au...@redhat.com> wrote: > > When arm virt machine is run in accelerated mode with "-cpu host > > -machine virt", the default gic version is 2. > > > > I understand the rationale with TCG where we don't have MSI ITS > > emulation along with GICv3 so we need to choose GICv2 to get GICv2M > > functionality. > > > > However in KVM mode, I would have expected to see the host GIC probed to > > set the same version on guest. Indeed most of our HW now have GICv3 > > without GICv2 compat mode so our default values lead to weird traces: > > > > " > > qemu-system-aarch64: PMU: KVM_SET_DEVICE_ATTR: Invalid argument > > qemu-system-aarch64: failed to set irq for PMU > > " > > > > I would like to propose a patch to improve those errors and also suggest > > a hint. But I also wanted to know whether you would accept to change the > > default value with KVM and choose the host version instead of 2. For TCG > > we would keep v2. > > As with the -cpu option, the default is there for command > line backward compatibility primarily. Even if we had > better support for MSI ITS emulation we'd still leave > the default at GICv2. > > If you want "do the best you can, regardless of accelerator" > that is "-cpu max -machine gic-version=max". >
There is a case where we can probe without breaking backward compatibility. That case is kvm-enabled and no gic-version specified. The reason it would be safe to probe the GIC version is because unless the host was a gicv2 host, then that command line wouldn't have worked anyway. And, if it is a gicv2 host, then the probing will come to the same conclusion as the default and nothing will have changed. Thanks, drew