On Mon, 19 Feb 2024 at 11:54, Thomas Huth <th...@redhat.com> wrote: > > On 07/02/2024 01.54, pet...@redhat.com wrote: > > From: Peter Xu <pet...@redhat.com> > > > > Recently we introduced cross-binary migration test. It's always wanted > > that migration-test uses stable guest ABI for both QEMU binaries in this > > case, so that both QEMU binaries will be compatible on the migration > > stream with the cmdline specified. > > > > Switch to a static gic version "3" rather than using version "max", so that > > GIC should be stable now across any future QEMU binaries for migration-test. > > > > Here the version can actually be anything as long as the ABI is stable. We > > choose "3" because it's the majority of what we already use in QEMU while > > still new enough: "git grep gic-version=3" shows 6 hit, while version 4 has > > no direct user yet besides "max". > > > > Note that even with this change, aarch64 won't be able to work yet with > > migration cross binary test, but then the only missing piece will be the > > stable CPU model. > > > > Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> > > Signed-off-by: Peter Xu <pet...@redhat.com> > > --- > > tests/qtest/migration-test.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c > > index 7675519cfa..8a5bb1752e 100644 > > --- a/tests/qtest/migration-test.c > > +++ b/tests/qtest/migration-test.c > > @@ -819,7 +819,7 @@ static int test_migrate_start(QTestState **from, > > QTestState **to, > > } else if (strcmp(arch, "aarch64") == 0) { > > memory_size = "150M"; > > machine_alias = "virt"; > > - machine_opts = "gic-version=max"; > > + machine_opts = "gic-version=3"; > > arch_opts = g_strdup_printf("-cpu max -kernel %s", bootpath); > > start_address = ARM_TEST_MEM_START; > > end_address = ARM_TEST_MEM_END; > > Looks like the migration test now fails on aarch64 when "configure" has been > run with "--without-default-devices", since that disables the gicv3 in the > binary ... is there a way to check whether the gicv3 is available, and use > "=max" instead if it is not?
A QEMU for AArch64 with no GICv3 is of very little practical use, so I'm not sure it makes sense to allow users to build one like that. (I'm also a little surprised that it worked with 'max', because without a GICv3 it would try to fall back to GICv2, and if we're going to allow users to compile-time disable one of the GICs then we should definitely allow them to choose to not build GICv2.) I think I would go for disabling the migration test entirely if the build doesn't include the GICv3. thanks -- PMM