[PATCH] KVM: arm64: selftests: Add support for GICv2 on v3
Ricardo Koller
ricarkol at google.com
Thu Jul 14 11:30:17 PDT 2022
Hi Marc,
On Thu, Jul 14, 2022 at 04:41:08PM +0100, Marc Zyngier wrote:
> The current vgic_init test wrongly assumes that the host cannot
> multiple versions of the GIC architecture, while v2 emulation
> on v3 has almost always been supported (it was supported before
> the standalone v3 emulation).
Thanks for the fix. This was my mistake (also I was taking too long to
send the fix).
>
> Tweak the test to support multiple GIC incarnations.
>
Nit. You could add a fixes tag:
Fixes: 3f4db37e203b ("KVM: arm64: selftests: Make vgic_init gic version agnostic")
> Signed-off-by: Marc Zyngier <maz at kernel.org>
> ---
> tools/testing/selftests/kvm/aarch64/vgic_init.c | 13 ++++++++-----
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/tools/testing/selftests/kvm/aarch64/vgic_init.c b/tools/testing/selftests/kvm/aarch64/vgic_init.c
> index 34379c98d2f4..21ba4002fc18 100644
> --- a/tools/testing/selftests/kvm/aarch64/vgic_init.c
> +++ b/tools/testing/selftests/kvm/aarch64/vgic_init.c
> @@ -670,7 +670,7 @@ int test_kvm_device(uint32_t gic_dev_type)
>
> if (!_kvm_create_device(v.vm, other, true, &fd)) {
> ret = _kvm_create_device(v.vm, other, false, &fd);
> - TEST_ASSERT(ret && errno == EINVAL,
> + TEST_ASSERT(ret && (errno == EINVAL || errno == EEXIST),
> "create GIC device while other version exists");
> }
>
> @@ -698,6 +698,7 @@ int main(int ac, char **av)
> {
> int ret;
> int pa_bits;
> + int cnt_impl = 0;
>
> pa_bits = vm_guest_mode_params[VM_MODE_DEFAULT].pa_bits;
> max_phys_size = 1ULL << pa_bits;
> @@ -706,17 +707,19 @@ int main(int ac, char **av)
> if (!ret) {
> pr_info("Running GIC_v3 tests.\n");
> run_tests(KVM_DEV_TYPE_ARM_VGIC_V3);
> - return 0;
> + cnt_impl++;
> }
>
> ret = test_kvm_device(KVM_DEV_TYPE_ARM_VGIC_V2);
> if (!ret) {
> pr_info("Running GIC_v2 tests.\n");
> run_tests(KVM_DEV_TYPE_ARM_VGIC_V2);
> - return 0;
> + cnt_impl++;
> }
>
> - print_skip("No GICv2 nor GICv3 support");
> - exit(KSFT_SKIP);
> + if (!cnt_impl) {
> + print_skip("No GICv2 nor GICv3 support");
> + exit(KSFT_SKIP);
> + }
> return 0;
> }
> --
> 2.34.1
>
Reviewed-by: Ricardo Koller <ricarkol at google.com>
More information about the linux-arm-kernel
mailing list