On 3/18/21 11:47 AM, Philippe Mathieu-Daudé wrote: > On 3/18/21 10:56 AM, Claudio Fontana wrote: >> On 3/18/21 10:47 AM, Philippe Mathieu-Daudé wrote: >>> Hi Peter, >>> >>> On 3/11/21 11:43 AM, Claudio Fontana wrote: >>>> On 2/21/21 11:26 PM, Philippe Mathieu-Daudé wrote: >>>>> KVM requires the target cpu to be at least ARMv8 architecture >>>>> (support on ARMv7 has been dropped in commit 82bf7ae84ce: >>>>> "target/arm: Remove KVM support for 32-bit Arm hosts"). >>>>> >>>>> A KVM-only build won't be able to run TCG cpus, move the >>>>> v7A CPU definitions to cpu_tcg.c. >>>>> >>>>> Reported-by: Peter Maydell <peter.mayd...@linaro.org> >>>>> Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> >>>>> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> >>>> >>>> >>>> Here I think it's better to keep the "a15" cpu around, >>>> until we fix the board configuration situation. >>>> >>>> I added a patch that does that into my KVM-only build series, to avoid the >>>> resulting breakages. >>> >>> Actually I got a downstream report that this break migration from QEMU >>> 5.2 to QEMU 6.0. >>> >>> I first thought it was on an old kernel (with 32-bit KVM enabled), >>> but not, it is for Aarch64 VMs on recent KVM (without 32-bit support) >>> but the 'virt' machines were started with default Cortex-A15 CPU... >>> >>> mc->default_cpu_type = ARM_CPU_TYPE_NAME("cortex-a15"); >>> >>> I'm not sure upstream should care about this case, but I though >>> maybe you could give me hints about the best way to keep old VMs >>> working, as this likely affects any distribution. Obviously not >>> upgrading QEMU is not a solution :) >>> >>> The simplest seems to revert 82bf7ae84ce and this patch, but I >>> doubt this will be enough. >>> >>> Maybe there is some clever thing to do before reverting 82bf7ae84ce, >>> that could also benefit upstream, by doing something with versioned >>> machines? I have no idea (yet) how that work and if it could work. >> >> Does just applying my series fix it? > > But we are past soft-freeze so I'm looking for a surgical fix. > > I'll send a partial revert for now.
Still, I'm not sure it makes sense. If you want to migrate a such machine, KVM can not virtualize it, so you'll be forced to use TCG right? In that case cpu_tcg is built in and you have the A15. IOW the problem is not this patch, it is that since 82bf7ae84ce we can not migrate A15. So we need both 1/ revert 82bf7ae84ce and 2/ be sure the kernel support 32-bit host... Am I missing something?