From: Ricardo Koller <ricarkol@google.com>
To: Raghavendra Rao Ananta <rananta@google.com>
Cc: kvm@vger.kernel.org, Will Deacon <will@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Peter Shier <pshier@google.com>,
linux-kernel@vger.kernel.org, Marc Zyngier <maz@kernel.org>,
Paolo Bonzini <pbonzini@redhat.com>,
kvmarm@lists.cs.columbia.edu,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 10/12] KVM: arm64: selftests: Add host support for vGIC
Date: Thu, 2 Sep 2021 10:28:23 -0700 [thread overview]
Message-ID: <YTEJt2pC1cIcwvyD@google.com> (raw)
In-Reply-To: <20210901211412.4171835-11-rananta@google.com>
On Wed, Sep 01, 2021 at 09:14:10PM +0000, Raghavendra Rao Ananta wrote:
> Implement a simple library to do perform vGIC-v3
> setup from a host of view. This includes creating
> a vGIC device, setting up distributor and redistributor
> attributes, and mapping the guest physical addresses.
>
> Signed-off-by: Raghavendra Rao Ananta <rananta@google.com>
>
> ---
> tools/testing/selftests/kvm/Makefile | 2 +-
> .../selftests/kvm/include/aarch64/vgic.h | 14 ++++
> .../testing/selftests/kvm/lib/aarch64/vgic.c | 67 +++++++++++++++++++
> 3 files changed, 82 insertions(+), 1 deletion(-)
> create mode 100644 tools/testing/selftests/kvm/include/aarch64/vgic.h
> create mode 100644 tools/testing/selftests/kvm/lib/aarch64/vgic.c
>
> diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
> index 5476a8ddef60..8342f65c1d96 100644
> --- a/tools/testing/selftests/kvm/Makefile
> +++ b/tools/testing/selftests/kvm/Makefile
> @@ -35,7 +35,7 @@ endif
>
> LIBKVM = lib/assert.c lib/elf.c lib/io.c lib/kvm_util.c lib/rbtree.c lib/sparsebit.c lib/test_util.c lib/guest_modes.c lib/perf_test_util.c
> LIBKVM_x86_64 = lib/x86_64/apic.c lib/x86_64/processor.c lib/x86_64/vmx.c lib/x86_64/svm.c lib/x86_64/ucall.c lib/x86_64/handlers.S
> -LIBKVM_aarch64 = lib/aarch64/processor.c lib/aarch64/ucall.c lib/aarch64/handlers.S lib/aarch64/spinlock.c lib/aarch64/gic.c lib/aarch64/gic_v3.c
> +LIBKVM_aarch64 = lib/aarch64/processor.c lib/aarch64/ucall.c lib/aarch64/handlers.S lib/aarch64/spinlock.c lib/aarch64/gic.c lib/aarch64/gic_v3.c lib/aarch64/vgic.c
> LIBKVM_s390x = lib/s390x/processor.c lib/s390x/ucall.c lib/s390x/diag318_test_handler.c
>
> TEST_GEN_PROGS_x86_64 = x86_64/cr4_cpuid_sync_test
> diff --git a/tools/testing/selftests/kvm/include/aarch64/vgic.h b/tools/testing/selftests/kvm/include/aarch64/vgic.h
> new file mode 100644
> index 000000000000..45bbf238147a
> --- /dev/null
> +++ b/tools/testing/selftests/kvm/include/aarch64/vgic.h
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * ARM Generic Interrupt Controller (GIC) host specific defines
> + */
> +
> +#ifndef SELFTEST_KVM_VGIC_H
> +#define SELFTEST_KVM_VGIC_H
> +
> +#include <linux/kvm.h>
> +
> +int vgic_v3_setup(struct kvm_vm *vm, unsigned int nr_vcpus,
> + uint64_t gicd_base_gpa, uint64_t gicr_base_gpa, uint32_t slot);
> +
> +#endif /* SELFTEST_KVM_VGIC_H */
> diff --git a/tools/testing/selftests/kvm/lib/aarch64/vgic.c b/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> new file mode 100644
> index 000000000000..a0e4b986d335
> --- /dev/null
> +++ b/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> @@ -0,0 +1,67 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * ARM Generic Interrupt Controller (GIC) v3 host support
> + */
> +
> +#include <linux/kvm.h>
> +#include <linux/sizes.h>
> +
> +#include "kvm_util.h"
> +
> +#define VGIC_V3_GICD_SZ (SZ_64K)
> +#define VGIC_V3_GICR_SZ (2 * SZ_64K)
> +
> +#define REDIST_REGION_ATTR_ADDR(count, base, flags, index) \
> + (((uint64_t)(count) << 52) | \
> + ((uint64_t)((base) >> 16) << 16) | \
> + ((uint64_t)(flags) << 12) | \
> + index)
> +
> +static void vgic_v3_map(struct kvm_vm *vm, uint64_t addr, unsigned int size)
> +{
> + unsigned int n_pages = DIV_ROUND_UP(size, vm_get_page_size(vm));
> +
> + virt_map(vm, addr, addr, n_pages);
> +}
> +
> +/*
> + * vGIC-v3 default host setup
> + *
> + * Input args:
> + * vm - KVM VM
> + * nr_vcpus - Number of vCPUs for this VM
> + * gicd_base_gpa - Guest Physical Address of the Distributor region
> + * gicr_base_gpa - Guest Physical Address of the Redistributor region
> + *
> + * Output args: None
> + *
> + * Return: GIC file-descriptor or negative error code upon failure
> + *
> + * The function creates a vGIC-v3 device and maps the distributor and
> + * redistributor regions of the guest.
> + */
> +int vgic_v3_setup(struct kvm_vm *vm, unsigned int nr_vcpus,
> + uint64_t gicd_base_gpa, uint64_t gicr_base_gpa)
> +{
> + uint64_t redist_attr;
> + int gic_fd;
> +
> + TEST_ASSERT(nr_vcpus <= KVM_MAX_VCPUS,
> + "Invalid number of CPUs: %u\n", nr_vcpus);
> +
> + gic_fd = kvm_create_device(vm, KVM_DEV_TYPE_ARM_VGIC_V3, false);
Nit: you can return early if gic_fd is bad.
> +
> + kvm_device_access(gic_fd, KVM_DEV_ARM_VGIC_GRP_ADDR,
> + KVM_VGIC_V3_ADDR_TYPE_DIST, &gicd_base_gpa, true);
> + vgic_v3_map(vm, gicd_base_gpa, VGIC_V3_GICD_SZ);
vgic_v3_map() implies that it's doing something vgic specific, when it's
just converting bytes to pages. What about something like the following?
virt_map(vm, addr, addr, VM_BYTES_TO_PAGES(vm, VGIC_V3_GICD_SZ));
and you add a VM_BYTES_TO_PAGES macro to include/kvm_util.h? I think
this macro can be useful to others.
> +
> + redist_attr = REDIST_REGION_ATTR_ADDR(nr_vcpus, gicr_base_gpa, 0, 0);
> + kvm_device_access(gic_fd, KVM_DEV_ARM_VGIC_GRP_ADDR,
> + KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION, &redist_attr, true);
> + vgic_v3_map(vm, gicr_base_gpa, VGIC_V3_GICR_SZ * nr_vcpus);
> +
> + kvm_device_access(gic_fd, KVM_DEV_ARM_VGIC_GRP_CTRL,
> + KVM_DEV_ARM_VGIC_CTRL_INIT, NULL, true);
> +
> + return gic_fd;
> +}
> --
> 2.33.0.153.gba50c8fa24-goog
>
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
WARNING: multiple messages have this Message-ID (diff)
From: Ricardo Koller <ricarkol@google.com>
To: Raghavendra Rao Ananta <rananta@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Marc Zyngier <maz@kernel.org>, James Morse <james.morse@arm.com>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, Peter Shier <pshier@google.com>,
Oliver Upton <oupton@google.com>,
Reiji Watanabe <reijiw@google.com>,
Jing Zhang <jingzhangos@google.com>,
linux-arm-kernel@lists.infradead.org,
kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org
Subject: Re: [PATCH v3 10/12] KVM: arm64: selftests: Add host support for vGIC
Date: Thu, 2 Sep 2021 10:28:23 -0700 [thread overview]
Message-ID: <YTEJt2pC1cIcwvyD@google.com> (raw)
In-Reply-To: <20210901211412.4171835-11-rananta@google.com>
On Wed, Sep 01, 2021 at 09:14:10PM +0000, Raghavendra Rao Ananta wrote:
> Implement a simple library to do perform vGIC-v3
> setup from a host of view. This includes creating
> a vGIC device, setting up distributor and redistributor
> attributes, and mapping the guest physical addresses.
>
> Signed-off-by: Raghavendra Rao Ananta <rananta@google.com>
>
> ---
> tools/testing/selftests/kvm/Makefile | 2 +-
> .../selftests/kvm/include/aarch64/vgic.h | 14 ++++
> .../testing/selftests/kvm/lib/aarch64/vgic.c | 67 +++++++++++++++++++
> 3 files changed, 82 insertions(+), 1 deletion(-)
> create mode 100644 tools/testing/selftests/kvm/include/aarch64/vgic.h
> create mode 100644 tools/testing/selftests/kvm/lib/aarch64/vgic.c
>
> diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
> index 5476a8ddef60..8342f65c1d96 100644
> --- a/tools/testing/selftests/kvm/Makefile
> +++ b/tools/testing/selftests/kvm/Makefile
> @@ -35,7 +35,7 @@ endif
>
> LIBKVM = lib/assert.c lib/elf.c lib/io.c lib/kvm_util.c lib/rbtree.c lib/sparsebit.c lib/test_util.c lib/guest_modes.c lib/perf_test_util.c
> LIBKVM_x86_64 = lib/x86_64/apic.c lib/x86_64/processor.c lib/x86_64/vmx.c lib/x86_64/svm.c lib/x86_64/ucall.c lib/x86_64/handlers.S
> -LIBKVM_aarch64 = lib/aarch64/processor.c lib/aarch64/ucall.c lib/aarch64/handlers.S lib/aarch64/spinlock.c lib/aarch64/gic.c lib/aarch64/gic_v3.c
> +LIBKVM_aarch64 = lib/aarch64/processor.c lib/aarch64/ucall.c lib/aarch64/handlers.S lib/aarch64/spinlock.c lib/aarch64/gic.c lib/aarch64/gic_v3.c lib/aarch64/vgic.c
> LIBKVM_s390x = lib/s390x/processor.c lib/s390x/ucall.c lib/s390x/diag318_test_handler.c
>
> TEST_GEN_PROGS_x86_64 = x86_64/cr4_cpuid_sync_test
> diff --git a/tools/testing/selftests/kvm/include/aarch64/vgic.h b/tools/testing/selftests/kvm/include/aarch64/vgic.h
> new file mode 100644
> index 000000000000..45bbf238147a
> --- /dev/null
> +++ b/tools/testing/selftests/kvm/include/aarch64/vgic.h
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * ARM Generic Interrupt Controller (GIC) host specific defines
> + */
> +
> +#ifndef SELFTEST_KVM_VGIC_H
> +#define SELFTEST_KVM_VGIC_H
> +
> +#include <linux/kvm.h>
> +
> +int vgic_v3_setup(struct kvm_vm *vm, unsigned int nr_vcpus,
> + uint64_t gicd_base_gpa, uint64_t gicr_base_gpa, uint32_t slot);
> +
> +#endif /* SELFTEST_KVM_VGIC_H */
> diff --git a/tools/testing/selftests/kvm/lib/aarch64/vgic.c b/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> new file mode 100644
> index 000000000000..a0e4b986d335
> --- /dev/null
> +++ b/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> @@ -0,0 +1,67 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * ARM Generic Interrupt Controller (GIC) v3 host support
> + */
> +
> +#include <linux/kvm.h>
> +#include <linux/sizes.h>
> +
> +#include "kvm_util.h"
> +
> +#define VGIC_V3_GICD_SZ (SZ_64K)
> +#define VGIC_V3_GICR_SZ (2 * SZ_64K)
> +
> +#define REDIST_REGION_ATTR_ADDR(count, base, flags, index) \
> + (((uint64_t)(count) << 52) | \
> + ((uint64_t)((base) >> 16) << 16) | \
> + ((uint64_t)(flags) << 12) | \
> + index)
> +
> +static void vgic_v3_map(struct kvm_vm *vm, uint64_t addr, unsigned int size)
> +{
> + unsigned int n_pages = DIV_ROUND_UP(size, vm_get_page_size(vm));
> +
> + virt_map(vm, addr, addr, n_pages);
> +}
> +
> +/*
> + * vGIC-v3 default host setup
> + *
> + * Input args:
> + * vm - KVM VM
> + * nr_vcpus - Number of vCPUs for this VM
> + * gicd_base_gpa - Guest Physical Address of the Distributor region
> + * gicr_base_gpa - Guest Physical Address of the Redistributor region
> + *
> + * Output args: None
> + *
> + * Return: GIC file-descriptor or negative error code upon failure
> + *
> + * The function creates a vGIC-v3 device and maps the distributor and
> + * redistributor regions of the guest.
> + */
> +int vgic_v3_setup(struct kvm_vm *vm, unsigned int nr_vcpus,
> + uint64_t gicd_base_gpa, uint64_t gicr_base_gpa)
> +{
> + uint64_t redist_attr;
> + int gic_fd;
> +
> + TEST_ASSERT(nr_vcpus <= KVM_MAX_VCPUS,
> + "Invalid number of CPUs: %u\n", nr_vcpus);
> +
> + gic_fd = kvm_create_device(vm, KVM_DEV_TYPE_ARM_VGIC_V3, false);
Nit: you can return early if gic_fd is bad.
> +
> + kvm_device_access(gic_fd, KVM_DEV_ARM_VGIC_GRP_ADDR,
> + KVM_VGIC_V3_ADDR_TYPE_DIST, &gicd_base_gpa, true);
> + vgic_v3_map(vm, gicd_base_gpa, VGIC_V3_GICD_SZ);
vgic_v3_map() implies that it's doing something vgic specific, when it's
just converting bytes to pages. What about something like the following?
virt_map(vm, addr, addr, VM_BYTES_TO_PAGES(vm, VGIC_V3_GICD_SZ));
and you add a VM_BYTES_TO_PAGES macro to include/kvm_util.h? I think
this macro can be useful to others.
> +
> + redist_attr = REDIST_REGION_ATTR_ADDR(nr_vcpus, gicr_base_gpa, 0, 0);
> + kvm_device_access(gic_fd, KVM_DEV_ARM_VGIC_GRP_ADDR,
> + KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION, &redist_attr, true);
> + vgic_v3_map(vm, gicr_base_gpa, VGIC_V3_GICR_SZ * nr_vcpus);
> +
> + kvm_device_access(gic_fd, KVM_DEV_ARM_VGIC_GRP_CTRL,
> + KVM_DEV_ARM_VGIC_CTRL_INIT, NULL, true);
> +
> + return gic_fd;
> +}
> --
> 2.33.0.153.gba50c8fa24-goog
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Ricardo Koller <ricarkol@google.com>
To: Raghavendra Rao Ananta <rananta@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Marc Zyngier <maz@kernel.org>, James Morse <james.morse@arm.com>,
Alexandru Elisei <alexandru.elisei@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, Peter Shier <pshier@google.com>,
Oliver Upton <oupton@google.com>,
Reiji Watanabe <reijiw@google.com>,
Jing Zhang <jingzhangos@google.com>,
linux-arm-kernel@lists.infradead.org,
kvmarm@lists.cs.columbia.edu, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org
Subject: Re: [PATCH v3 10/12] KVM: arm64: selftests: Add host support for vGIC
Date: Thu, 2 Sep 2021 10:28:23 -0700 [thread overview]
Message-ID: <YTEJt2pC1cIcwvyD@google.com> (raw)
In-Reply-To: <20210901211412.4171835-11-rananta@google.com>
On Wed, Sep 01, 2021 at 09:14:10PM +0000, Raghavendra Rao Ananta wrote:
> Implement a simple library to do perform vGIC-v3
> setup from a host of view. This includes creating
> a vGIC device, setting up distributor and redistributor
> attributes, and mapping the guest physical addresses.
>
> Signed-off-by: Raghavendra Rao Ananta <rananta@google.com>
>
> ---
> tools/testing/selftests/kvm/Makefile | 2 +-
> .../selftests/kvm/include/aarch64/vgic.h | 14 ++++
> .../testing/selftests/kvm/lib/aarch64/vgic.c | 67 +++++++++++++++++++
> 3 files changed, 82 insertions(+), 1 deletion(-)
> create mode 100644 tools/testing/selftests/kvm/include/aarch64/vgic.h
> create mode 100644 tools/testing/selftests/kvm/lib/aarch64/vgic.c
>
> diff --git a/tools/testing/selftests/kvm/Makefile b/tools/testing/selftests/kvm/Makefile
> index 5476a8ddef60..8342f65c1d96 100644
> --- a/tools/testing/selftests/kvm/Makefile
> +++ b/tools/testing/selftests/kvm/Makefile
> @@ -35,7 +35,7 @@ endif
>
> LIBKVM = lib/assert.c lib/elf.c lib/io.c lib/kvm_util.c lib/rbtree.c lib/sparsebit.c lib/test_util.c lib/guest_modes.c lib/perf_test_util.c
> LIBKVM_x86_64 = lib/x86_64/apic.c lib/x86_64/processor.c lib/x86_64/vmx.c lib/x86_64/svm.c lib/x86_64/ucall.c lib/x86_64/handlers.S
> -LIBKVM_aarch64 = lib/aarch64/processor.c lib/aarch64/ucall.c lib/aarch64/handlers.S lib/aarch64/spinlock.c lib/aarch64/gic.c lib/aarch64/gic_v3.c
> +LIBKVM_aarch64 = lib/aarch64/processor.c lib/aarch64/ucall.c lib/aarch64/handlers.S lib/aarch64/spinlock.c lib/aarch64/gic.c lib/aarch64/gic_v3.c lib/aarch64/vgic.c
> LIBKVM_s390x = lib/s390x/processor.c lib/s390x/ucall.c lib/s390x/diag318_test_handler.c
>
> TEST_GEN_PROGS_x86_64 = x86_64/cr4_cpuid_sync_test
> diff --git a/tools/testing/selftests/kvm/include/aarch64/vgic.h b/tools/testing/selftests/kvm/include/aarch64/vgic.h
> new file mode 100644
> index 000000000000..45bbf238147a
> --- /dev/null
> +++ b/tools/testing/selftests/kvm/include/aarch64/vgic.h
> @@ -0,0 +1,14 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * ARM Generic Interrupt Controller (GIC) host specific defines
> + */
> +
> +#ifndef SELFTEST_KVM_VGIC_H
> +#define SELFTEST_KVM_VGIC_H
> +
> +#include <linux/kvm.h>
> +
> +int vgic_v3_setup(struct kvm_vm *vm, unsigned int nr_vcpus,
> + uint64_t gicd_base_gpa, uint64_t gicr_base_gpa, uint32_t slot);
> +
> +#endif /* SELFTEST_KVM_VGIC_H */
> diff --git a/tools/testing/selftests/kvm/lib/aarch64/vgic.c b/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> new file mode 100644
> index 000000000000..a0e4b986d335
> --- /dev/null
> +++ b/tools/testing/selftests/kvm/lib/aarch64/vgic.c
> @@ -0,0 +1,67 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/*
> + * ARM Generic Interrupt Controller (GIC) v3 host support
> + */
> +
> +#include <linux/kvm.h>
> +#include <linux/sizes.h>
> +
> +#include "kvm_util.h"
> +
> +#define VGIC_V3_GICD_SZ (SZ_64K)
> +#define VGIC_V3_GICR_SZ (2 * SZ_64K)
> +
> +#define REDIST_REGION_ATTR_ADDR(count, base, flags, index) \
> + (((uint64_t)(count) << 52) | \
> + ((uint64_t)((base) >> 16) << 16) | \
> + ((uint64_t)(flags) << 12) | \
> + index)
> +
> +static void vgic_v3_map(struct kvm_vm *vm, uint64_t addr, unsigned int size)
> +{
> + unsigned int n_pages = DIV_ROUND_UP(size, vm_get_page_size(vm));
> +
> + virt_map(vm, addr, addr, n_pages);
> +}
> +
> +/*
> + * vGIC-v3 default host setup
> + *
> + * Input args:
> + * vm - KVM VM
> + * nr_vcpus - Number of vCPUs for this VM
> + * gicd_base_gpa - Guest Physical Address of the Distributor region
> + * gicr_base_gpa - Guest Physical Address of the Redistributor region
> + *
> + * Output args: None
> + *
> + * Return: GIC file-descriptor or negative error code upon failure
> + *
> + * The function creates a vGIC-v3 device and maps the distributor and
> + * redistributor regions of the guest.
> + */
> +int vgic_v3_setup(struct kvm_vm *vm, unsigned int nr_vcpus,
> + uint64_t gicd_base_gpa, uint64_t gicr_base_gpa)
> +{
> + uint64_t redist_attr;
> + int gic_fd;
> +
> + TEST_ASSERT(nr_vcpus <= KVM_MAX_VCPUS,
> + "Invalid number of CPUs: %u\n", nr_vcpus);
> +
> + gic_fd = kvm_create_device(vm, KVM_DEV_TYPE_ARM_VGIC_V3, false);
Nit: you can return early if gic_fd is bad.
> +
> + kvm_device_access(gic_fd, KVM_DEV_ARM_VGIC_GRP_ADDR,
> + KVM_VGIC_V3_ADDR_TYPE_DIST, &gicd_base_gpa, true);
> + vgic_v3_map(vm, gicd_base_gpa, VGIC_V3_GICD_SZ);
vgic_v3_map() implies that it's doing something vgic specific, when it's
just converting bytes to pages. What about something like the following?
virt_map(vm, addr, addr, VM_BYTES_TO_PAGES(vm, VGIC_V3_GICD_SZ));
and you add a VM_BYTES_TO_PAGES macro to include/kvm_util.h? I think
this macro can be useful to others.
> +
> + redist_attr = REDIST_REGION_ATTR_ADDR(nr_vcpus, gicr_base_gpa, 0, 0);
> + kvm_device_access(gic_fd, KVM_DEV_ARM_VGIC_GRP_ADDR,
> + KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION, &redist_attr, true);
> + vgic_v3_map(vm, gicr_base_gpa, VGIC_V3_GICR_SZ * nr_vcpus);
> +
> + kvm_device_access(gic_fd, KVM_DEV_ARM_VGIC_GRP_CTRL,
> + KVM_DEV_ARM_VGIC_CTRL_INIT, NULL, true);
> +
> + return gic_fd;
> +}
> --
> 2.33.0.153.gba50c8fa24-goog
>
next prev parent reply other threads:[~2021-09-02 17:28 UTC|newest]
Thread overview: 159+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-01 21:14 [PATCH v3 00/12] KVM: arm64: selftests: Introduce arch_timer selftest Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` [PATCH v3 01/12] KVM: arm64: selftests: Add MMIO readl/writel support Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:23 ` Oliver Upton
2021-09-01 21:23 ` Oliver Upton
2021-09-01 21:23 ` Oliver Upton
2021-09-01 22:43 ` Raghavendra Rao Ananta
2021-09-01 22:43 ` Raghavendra Rao Ananta
2021-09-01 22:43 ` Raghavendra Rao Ananta
2021-09-02 20:17 ` Oliver Upton
2021-09-02 20:17 ` Oliver Upton
2021-09-02 20:17 ` Oliver Upton
2021-09-02 13:21 ` Andrew Jones
2021-09-02 13:21 ` Andrew Jones
2021-09-02 13:21 ` Andrew Jones
2021-09-01 21:14 ` [PATCH v3 02/12] KVM: arm64: selftests: Add write_sysreg_s and read_sysreg_s Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:28 ` Oliver Upton
2021-09-01 21:28 ` Oliver Upton
2021-09-01 21:28 ` Oliver Upton
2021-09-01 22:08 ` Oliver Upton
2021-09-01 22:08 ` Oliver Upton
2021-09-01 22:08 ` Oliver Upton
2021-09-01 22:48 ` Raghavendra Rao Ananta
2021-09-01 22:48 ` Raghavendra Rao Ananta
2021-09-01 22:48 ` Raghavendra Rao Ananta
2021-09-01 23:06 ` Oliver Upton
2021-09-01 23:06 ` Oliver Upton
2021-09-01 23:06 ` Oliver Upton
2021-09-02 12:31 ` Andrew Jones
2021-09-02 12:31 ` Andrew Jones
2021-09-02 12:31 ` Andrew Jones
2021-09-02 17:55 ` Raghavendra Rao Ananta
2021-09-02 17:55 ` Raghavendra Rao Ananta
2021-09-02 17:55 ` Raghavendra Rao Ananta
2021-09-02 13:44 ` Andrew Jones
2021-09-02 13:44 ` Andrew Jones
2021-09-02 13:44 ` Andrew Jones
2021-09-01 21:14 ` [PATCH v3 03/12] KVM: arm64: selftests: Add support for cpu_relax Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:29 ` Oliver Upton
2021-09-01 21:29 ` Oliver Upton
2021-09-01 21:29 ` Oliver Upton
2021-09-01 22:10 ` Oliver Upton
2021-09-01 22:10 ` Oliver Upton
2021-09-01 22:10 ` Oliver Upton
2021-09-02 13:46 ` Andrew Jones
2021-09-02 13:46 ` Andrew Jones
2021-09-02 13:46 ` Andrew Jones
2021-09-01 21:14 ` [PATCH v3 04/12] KVM: arm64: selftests: Add basic support for arch_timers Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-02 14:12 ` Andrew Jones
2021-09-02 14:12 ` Andrew Jones
2021-09-02 14:12 ` Andrew Jones
2021-09-01 21:14 ` [PATCH v3 05/12] KVM: arm64: selftests: Add basic support to generate delays Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-02 14:35 ` Andrew Jones
2021-09-02 14:35 ` Andrew Jones
2021-09-02 14:35 ` Andrew Jones
2021-09-02 20:20 ` Oliver Upton
2021-09-02 20:20 ` Oliver Upton
2021-09-02 20:20 ` Oliver Upton
2021-09-01 21:14 ` [PATCH v3 06/12] KVM: arm64: selftests: Add support to disable and enable local IRQs Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 23:26 ` Oliver Upton
2021-09-01 23:26 ` Oliver Upton
2021-09-01 23:26 ` Oliver Upton
2021-09-02 14:43 ` Andrew Jones
2021-09-02 14:43 ` Andrew Jones
2021-09-02 14:43 ` Andrew Jones
2021-09-01 21:14 ` [PATCH v3 07/12] KVM: arm64: selftests: Add support to get the vcpuid from MPIDR_EL1 Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 23:48 ` Oliver Upton
2021-09-01 23:48 ` Oliver Upton
2021-09-01 23:48 ` Oliver Upton
2021-09-02 12:36 ` Andrew Jones
2021-09-02 12:36 ` Andrew Jones
2021-09-02 12:36 ` Andrew Jones
2021-09-02 17:52 ` Raghavendra Rao Ananta
2021-09-02 17:52 ` Raghavendra Rao Ananta
2021-09-02 17:52 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` [PATCH v3 08/12] KVM: arm64: selftests: Add light-weight spinlock support Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-02 21:06 ` Oliver Upton
2021-09-02 21:06 ` Oliver Upton
2021-09-02 21:06 ` Oliver Upton
2021-09-03 8:25 ` Andrew Jones
2021-09-03 8:25 ` Andrew Jones
2021-09-03 8:25 ` Andrew Jones
2021-09-01 21:14 ` [PATCH v3 09/12] KVM: arm64: selftests: Add basic GICv3 support Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-03 9:37 ` Andrew Jones
2021-09-03 9:37 ` Andrew Jones
2021-09-03 9:37 ` Andrew Jones
2021-09-01 21:14 ` [PATCH v3 10/12] KVM: arm64: selftests: Add host support for vGIC Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-02 17:28 ` Ricardo Koller [this message]
2021-09-02 17:28 ` Ricardo Koller
2021-09-02 17:28 ` Ricardo Koller
2021-09-02 17:59 ` Raghavendra Rao Ananta
2021-09-02 17:59 ` Raghavendra Rao Ananta
2021-09-02 17:59 ` Raghavendra Rao Ananta
2021-09-03 10:00 ` Andrew Jones
2021-09-03 10:00 ` Andrew Jones
2021-09-03 10:00 ` Andrew Jones
2021-09-03 20:45 ` Raghavendra Rao Ananta
2021-09-03 20:45 ` Raghavendra Rao Ananta
2021-09-03 20:45 ` Raghavendra Rao Ananta
2021-09-03 10:51 ` Andrew Jones
2021-09-03 10:51 ` Andrew Jones
2021-09-03 10:51 ` Andrew Jones
2021-09-03 20:48 ` Raghavendra Rao Ananta
2021-09-03 20:48 ` Raghavendra Rao Ananta
2021-09-03 20:48 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` [PATCH v3 11/12] KVM: arm64: selftests: Add arch_timer test Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-03 10:48 ` Andrew Jones
2021-09-03 10:48 ` Andrew Jones
2021-09-03 10:48 ` Andrew Jones
2021-09-03 20:42 ` Raghavendra Rao Ananta
2021-09-03 20:42 ` Raghavendra Rao Ananta
2021-09-03 20:42 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` [PATCH v3 12/12] KVM: arm64: selftests: arch_timer: Support vCPU migration Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-01 21:14 ` Raghavendra Rao Ananta
2021-09-03 11:05 ` Andrew Jones
2021-09-03 11:05 ` Andrew Jones
2021-09-03 11:05 ` Andrew Jones
2021-09-03 20:53 ` Raghavendra Rao Ananta
2021-09-03 20:53 ` Raghavendra Rao Ananta
2021-09-03 20:53 ` Raghavendra Rao Ananta
2021-09-06 6:39 ` Andrew Jones
2021-09-06 6:39 ` Andrew Jones
2021-09-06 6:39 ` Andrew Jones
2021-09-07 16:14 ` Raghavendra Rao Ananta
2021-09-07 16:14 ` Raghavendra Rao Ananta
2021-09-07 16:14 ` Raghavendra Rao Ananta
2021-09-07 16:20 ` Andrew Jones
2021-09-07 16:20 ` Andrew Jones
2021-09-07 16:20 ` Andrew Jones
2021-09-01 22:04 ` [PATCH v3 00/12] KVM: arm64: selftests: Introduce arch_timer selftest Oliver Upton
2021-09-01 22:04 ` Oliver Upton
2021-09-01 22:04 ` Oliver Upton
2021-09-01 22:05 ` Oliver Upton
2021-09-01 22:05 ` Oliver Upton
2021-09-01 22:05 ` Oliver Upton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YTEJt2pC1cIcwvyD@google.com \
--to=ricarkol@google.com \
--cc=catalin.marinas@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maz@kernel.org \
--cc=pbonzini@redhat.com \
--cc=pshier@google.com \
--cc=rananta@google.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.