Hi, I am tring to heterogeneous live migration on ARM64 host. Now I just use below kernel/qemu branch to have a try: https://github.com/hisilicon/kernel-dev/tree/private-v6.11-rc2-hisi-migrn-wip https://github.com/hisilicon/qemu/tree/stable-8.2-kunpeng920-initial-v2
Currently guest on GICv4.1 and GICv3 host can do migration successfully. I am not sure that it is expected. GICv4.1 exports GICD_TYPER2.nASSGIcap and GICD_CTRL.nASSGIreq to guest, so guests(GICv3) on GICv4.1 and GICv3 host will have different state here. So basically a guest on host GICv4.1 will lost state when it move to a host with GICv3. It seems that current mainline qemu does not consider GICD_TYPER2, and guest OS(linux) does not use GICD_TYPER2.nASSGIcap and GICD_CTRL.nASSGIreq(just check cap and set req), so current test has been passed. In fact, there was some discussions about this problem: https://lore.kernel.org/kvmarm/[email protected]/ I am not sure if we should prevent users from doing migration between host GICv3 and GICv4.1? Thanks, Zhou
