diff mbox series

[RFC,6/7] tests/qtest/migration: Run aarch64/HVF tests using GICv2

Message ID 20250128135429.8500-7-philmd@linaro.org
State New
Headers show
Series tests/qtest/migration: Update framework to allow using HVF accelerator | expand

Commit Message

Philippe Mathieu-Daudé Jan. 28, 2025, 1:54 p.m. UTC
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(-)

Comments

Akihiko Odaki Jan. 29, 2025, 5:39 a.m. UTC | #1
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";
Phil Dennis-Jordan Feb. 9, 2025, 7:02 p.m. UTC | #2
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 mbox series

Patch

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";