Message ID | 20250128135429.8500-7-philmd@linaro.org |
---|---|
State | New |
Headers | show |
Series | tests/qtest/migration: Update framework to allow using HVF accelerator | expand |
On 2025/01/28 22:54, Philippe Mathieu-Daudé wrote: > GICv3 isn't supported on aarch64/HVF, but GICv2 is. Commit bdb0ade663c7 ("tests/migration-test: Stick with gicv3 in aarch64 test"), which set gic-version=3, says: > 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. So I think we should always set gic-version=2 so that gic-version will not vary with hosts. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > RFC: Test eventually timeouts :( > > tests/qtest/migration/framework.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/tests/qtest/migration/framework.c b/tests/qtest/migration/framework.c > index 5629b8ba4e3..30808de14e0 100644 > --- a/tests/qtest/migration/framework.c > +++ b/tests/qtest/migration/framework.c > @@ -266,7 +266,7 @@ int migrate_start(QTestState **from, QTestState **to, const char *uri, > } else if (strcmp(arch, "aarch64") == 0) { > memory_size = "150M"; > machine_alias = "virt"; > - machine_opts = "gic-version=3"; > + machine_opts = env->has_hvf ? "gic-version=2" : "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; > @@ -303,6 +303,8 @@ int migrate_start(QTestState **from, QTestState **to, const char *uri, > } else { > accel_args = "kvm"; > } > + } else if (env->has_hvf) { > + accel_args = "hvf"; > } else { > assert(env->has_tcg); > accel_args = "tcg";
On Tue, 28 Jan 2025 at 14:55, Philippe Mathieu-Daudé <philmd@linaro.org> wrote: > GICv3 isn't supported on aarch64/HVF, but GICv2 is. Hmm. I'm still trying to get my head around this patch series and QTest in general, but in my experience GICv3 works fine with HVF? (Device name "arm-gicv3") Can you clarify what you mean or why this difference is needed? > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > RFC: Test eventually timeouts :( > > tests/qtest/migration/framework.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/tests/qtest/migration/framework.c > b/tests/qtest/migration/framework.c > index 5629b8ba4e3..30808de14e0 100644 > --- a/tests/qtest/migration/framework.c > +++ b/tests/qtest/migration/framework.c > @@ -266,7 +266,7 @@ int migrate_start(QTestState **from, QTestState **to, > const char *uri, > } else if (strcmp(arch, "aarch64") == 0) { > memory_size = "150M"; > machine_alias = "virt"; > - machine_opts = "gic-version=3"; > + machine_opts = env->has_hvf ? "gic-version=2" : "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; > @@ -303,6 +303,8 @@ int migrate_start(QTestState **from, QTestState **to, > const char *uri, > } else { > accel_args = "kvm"; > } > + } else if (env->has_hvf) { > + accel_args = "hvf"; > } else { > assert(env->has_tcg); > accel_args = "tcg"; > -- > 2.47.1 > > >
diff --git a/tests/qtest/migration/framework.c b/tests/qtest/migration/framework.c index 5629b8ba4e3..30808de14e0 100644 --- a/tests/qtest/migration/framework.c +++ b/tests/qtest/migration/framework.c @@ -266,7 +266,7 @@ int migrate_start(QTestState **from, QTestState **to, const char *uri, } else if (strcmp(arch, "aarch64") == 0) { memory_size = "150M"; machine_alias = "virt"; - machine_opts = "gic-version=3"; + machine_opts = env->has_hvf ? "gic-version=2" : "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; @@ -303,6 +303,8 @@ int migrate_start(QTestState **from, QTestState **to, const char *uri, } else { accel_args = "kvm"; } + } else if (env->has_hvf) { + accel_args = "hvf"; } else { assert(env->has_tcg); accel_args = "tcg";
GICv3 isn't supported on aarch64/HVF, but GICv2 is. Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> --- RFC: Test eventually timeouts :( tests/qtest/migration/framework.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)