All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Quentin Perret <qperret@google.com>
Cc: devicetree@vger.kernel.org, kernel-team@android.com,
	Frank Rowand <frowand.list@gmail.com>,
	android-kvm@google.com, Catalin Marinas <catalin.marinas@arm.com>,
	Fuad Tabba <tabba@google.com>,
	linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	Will Deacon <will@kernel.org>,
	kvmarm@lists.cs.columbia.edu
Subject: Re: [RFC PATCH v2 13/26] KVM: arm64: Enable access to sanitized CPU features at EL2
Date: Wed, 13 Jan 2021 11:33:13 +0000	[thread overview]
Message-ID: <d55643ea391f73a2297f499f3219ba8a@kernel.org> (raw)
In-Reply-To: <20210108121524.656872-14-qperret@google.com>

Hi Quentin,

On 2021-01-08 12:15, Quentin Perret wrote:
> Introduce the infrastructure in KVM enabling to copy CPU feature
> registers into EL2-owned data-structures, to allow reading sanitised
> values directly at EL2 in nVHE.
> 
> Given that only a subset of these features are being read by the
> hypervisor, the ones that need to be copied are to be listed under
> <asm/kvm_cpufeature.h> together with the name of the nVHE variable that
> will hold the copy.
> 
> While at it, introduce the first user of this infrastructure by
> implementing __flush_dcache_area at EL2, which needs
> arm64_ftr_reg_ctrel0.
> 
> Signed-off-by: Quentin Perret <qperret@google.com>
> ---
>  arch/arm64/include/asm/cpufeature.h     |  1 +
>  arch/arm64/include/asm/kvm_cpufeature.h | 17 ++++++++++++++
>  arch/arm64/kernel/cpufeature.c          | 12 ++++++++++
>  arch/arm64/kvm/arm.c                    | 31 +++++++++++++++++++++++++
>  arch/arm64/kvm/hyp/nvhe/Makefile        |  3 ++-
>  arch/arm64/kvm/hyp/nvhe/cache.S         | 13 +++++++++++
>  arch/arm64/kvm/hyp/nvhe/cpufeature.c    |  8 +++++++
>  7 files changed, 84 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm64/include/asm/kvm_cpufeature.h
>  create mode 100644 arch/arm64/kvm/hyp/nvhe/cache.S
>  create mode 100644 arch/arm64/kvm/hyp/nvhe/cpufeature.c
> 
> diff --git a/arch/arm64/include/asm/cpufeature.h
> b/arch/arm64/include/asm/cpufeature.h
> index 16063c813dcd..742e9bcc051b 100644
> --- a/arch/arm64/include/asm/cpufeature.h
> +++ b/arch/arm64/include/asm/cpufeature.h
> @@ -600,6 +600,7 @@ void __init setup_cpu_features(void);
>  void check_local_cpu_capabilities(void);
> 
>  u64 read_sanitised_ftr_reg(u32 id);
> +int copy_ftr_reg(u32 id, struct arm64_ftr_reg *dst);
> 
>  static inline bool cpu_supports_mixed_endian_el0(void)
>  {
> diff --git a/arch/arm64/include/asm/kvm_cpufeature.h
> b/arch/arm64/include/asm/kvm_cpufeature.h
> new file mode 100644
> index 000000000000..d34f85cba358
> --- /dev/null
> +++ b/arch/arm64/include/asm/kvm_cpufeature.h
> @@ -0,0 +1,17 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2020 - Google LLC
> + * Author: Quentin Perret <qperret@google.com>
> + */
> +
> +#include <asm/cpufeature.h>
> +
> +#ifndef KVM_HYP_CPU_FTR_REG
> +#if defined(__KVM_NVHE_HYPERVISOR__)
> +#define KVM_HYP_CPU_FTR_REG(id, name) extern struct arm64_ftr_reg 
> name;
> +#else
> +#define KVM_HYP_CPU_FTR_REG(id, name) DECLARE_KVM_NVHE_SYM(name);
> +#endif
> +#endif
> +
> +KVM_HYP_CPU_FTR_REG(SYS_CTR_EL0, arm64_ftr_reg_ctrel0)
> diff --git a/arch/arm64/kernel/cpufeature.c 
> b/arch/arm64/kernel/cpufeature.c
> index bc3549663957..c2019aaaadc3 100644
> --- a/arch/arm64/kernel/cpufeature.c
> +++ b/arch/arm64/kernel/cpufeature.c
> @@ -1113,6 +1113,18 @@ u64 read_sanitised_ftr_reg(u32 id)
>  }
>  EXPORT_SYMBOL_GPL(read_sanitised_ftr_reg);
> 
> +int copy_ftr_reg(u32 id, struct arm64_ftr_reg *dst)
> +{
> +	struct arm64_ftr_reg *regp = get_arm64_ftr_reg(id);
> +
> +	if (!regp)
> +		return -EINVAL;
> +
> +	memcpy(dst, regp, sizeof(*regp));
> +
> +	return 0;
> +}
> +
>  #define read_sysreg_case(r)	\
>  	case r:		return read_sysreg_s(r)
> 
> diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
> index 51b53ca36dc5..9fd769349e9e 100644
> --- a/arch/arm64/kvm/arm.c
> +++ b/arch/arm64/kvm/arm.c
> @@ -34,6 +34,7 @@
>  #include <asm/virt.h>
>  #include <asm/kvm_arm.h>
>  #include <asm/kvm_asm.h>
> +#include <asm/kvm_cpufeature.h>
>  #include <asm/kvm_mmu.h>
>  #include <asm/kvm_emulate.h>
>  #include <asm/sections.h>
> @@ -1697,6 +1698,29 @@ static void teardown_hyp_mode(void)
>  	}
>  }
> 
> +#undef KVM_HYP_CPU_FTR_REG
> +#define KVM_HYP_CPU_FTR_REG(id, name) \
> +	{ .sys_id = id, .dst = (struct arm64_ftr_reg *)&kvm_nvhe_sym(name) },
> +static const struct __ftr_reg_copy_entry {
> +	u32			sys_id;
> +	struct arm64_ftr_reg	*dst;

Why do we need the whole data structure? Can't we just live with 
sys_val?

> +} hyp_ftr_regs[] = {
> +	#include <asm/kvm_cpufeature.h>
> +};

Can't this be made __initdata?

> +
> +static int copy_cpu_ftr_regs(void)
> +{
> +	int i, ret;
> +
> +	for (i = 0; i < ARRAY_SIZE(hyp_ftr_regs); i++) {
> +		ret = copy_ftr_reg(hyp_ftr_regs[i].sys_id, hyp_ftr_regs[i].dst);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
>  /**
>   * Inits Hyp-mode on all online CPUs
>   */
> @@ -1705,6 +1729,13 @@ static int init_hyp_mode(void)
>  	int cpu;
>  	int err = 0;
> 
> +	/*
> +	 * Copy the required CPU feature register in their EL2 counterpart
> +	 */
> +	err = copy_cpu_ftr_regs();
> +	if (err)
> +		return err;
> +

Just to keep things together, please move any sysreg manipulation into
sys_regs.c, most probably into kvm_sys_reg_table_init().

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...
_______________________________________________
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: Marc Zyngier <maz@kernel.org>
To: Quentin Perret <qperret@google.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org, kernel-team@android.com,
	Frank Rowand <frowand.list@gmail.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	android-kvm@google.com, Catalin Marinas <catalin.marinas@arm.com>,
	Fuad Tabba <tabba@google.com>,
	linux-kernel@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	James Morse <james.morse@arm.com>,
	linux-arm-kernel@lists.infradead.org,
	David Brazdil <dbrazdil@google.com>,
	Will Deacon <will@kernel.org>,
	kvmarm@lists.cs.columbia.edu,
	Julien Thierry <julien.thierry.kdev@gmail.com>
Subject: Re: [RFC PATCH v2 13/26] KVM: arm64: Enable access to sanitized CPU features at EL2
Date: Wed, 13 Jan 2021 11:33:13 +0000	[thread overview]
Message-ID: <d55643ea391f73a2297f499f3219ba8a@kernel.org> (raw)
In-Reply-To: <20210108121524.656872-14-qperret@google.com>

Hi Quentin,

On 2021-01-08 12:15, Quentin Perret wrote:
> Introduce the infrastructure in KVM enabling to copy CPU feature
> registers into EL2-owned data-structures, to allow reading sanitised
> values directly at EL2 in nVHE.
> 
> Given that only a subset of these features are being read by the
> hypervisor, the ones that need to be copied are to be listed under
> <asm/kvm_cpufeature.h> together with the name of the nVHE variable that
> will hold the copy.
> 
> While at it, introduce the first user of this infrastructure by
> implementing __flush_dcache_area at EL2, which needs
> arm64_ftr_reg_ctrel0.
> 
> Signed-off-by: Quentin Perret <qperret@google.com>
> ---
>  arch/arm64/include/asm/cpufeature.h     |  1 +
>  arch/arm64/include/asm/kvm_cpufeature.h | 17 ++++++++++++++
>  arch/arm64/kernel/cpufeature.c          | 12 ++++++++++
>  arch/arm64/kvm/arm.c                    | 31 +++++++++++++++++++++++++
>  arch/arm64/kvm/hyp/nvhe/Makefile        |  3 ++-
>  arch/arm64/kvm/hyp/nvhe/cache.S         | 13 +++++++++++
>  arch/arm64/kvm/hyp/nvhe/cpufeature.c    |  8 +++++++
>  7 files changed, 84 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm64/include/asm/kvm_cpufeature.h
>  create mode 100644 arch/arm64/kvm/hyp/nvhe/cache.S
>  create mode 100644 arch/arm64/kvm/hyp/nvhe/cpufeature.c
> 
> diff --git a/arch/arm64/include/asm/cpufeature.h
> b/arch/arm64/include/asm/cpufeature.h
> index 16063c813dcd..742e9bcc051b 100644
> --- a/arch/arm64/include/asm/cpufeature.h
> +++ b/arch/arm64/include/asm/cpufeature.h
> @@ -600,6 +600,7 @@ void __init setup_cpu_features(void);
>  void check_local_cpu_capabilities(void);
> 
>  u64 read_sanitised_ftr_reg(u32 id);
> +int copy_ftr_reg(u32 id, struct arm64_ftr_reg *dst);
> 
>  static inline bool cpu_supports_mixed_endian_el0(void)
>  {
> diff --git a/arch/arm64/include/asm/kvm_cpufeature.h
> b/arch/arm64/include/asm/kvm_cpufeature.h
> new file mode 100644
> index 000000000000..d34f85cba358
> --- /dev/null
> +++ b/arch/arm64/include/asm/kvm_cpufeature.h
> @@ -0,0 +1,17 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2020 - Google LLC
> + * Author: Quentin Perret <qperret@google.com>
> + */
> +
> +#include <asm/cpufeature.h>
> +
> +#ifndef KVM_HYP_CPU_FTR_REG
> +#if defined(__KVM_NVHE_HYPERVISOR__)
> +#define KVM_HYP_CPU_FTR_REG(id, name) extern struct arm64_ftr_reg 
> name;
> +#else
> +#define KVM_HYP_CPU_FTR_REG(id, name) DECLARE_KVM_NVHE_SYM(name);
> +#endif
> +#endif
> +
> +KVM_HYP_CPU_FTR_REG(SYS_CTR_EL0, arm64_ftr_reg_ctrel0)
> diff --git a/arch/arm64/kernel/cpufeature.c 
> b/arch/arm64/kernel/cpufeature.c
> index bc3549663957..c2019aaaadc3 100644
> --- a/arch/arm64/kernel/cpufeature.c
> +++ b/arch/arm64/kernel/cpufeature.c
> @@ -1113,6 +1113,18 @@ u64 read_sanitised_ftr_reg(u32 id)
>  }
>  EXPORT_SYMBOL_GPL(read_sanitised_ftr_reg);
> 
> +int copy_ftr_reg(u32 id, struct arm64_ftr_reg *dst)
> +{
> +	struct arm64_ftr_reg *regp = get_arm64_ftr_reg(id);
> +
> +	if (!regp)
> +		return -EINVAL;
> +
> +	memcpy(dst, regp, sizeof(*regp));
> +
> +	return 0;
> +}
> +
>  #define read_sysreg_case(r)	\
>  	case r:		return read_sysreg_s(r)
> 
> diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
> index 51b53ca36dc5..9fd769349e9e 100644
> --- a/arch/arm64/kvm/arm.c
> +++ b/arch/arm64/kvm/arm.c
> @@ -34,6 +34,7 @@
>  #include <asm/virt.h>
>  #include <asm/kvm_arm.h>
>  #include <asm/kvm_asm.h>
> +#include <asm/kvm_cpufeature.h>
>  #include <asm/kvm_mmu.h>
>  #include <asm/kvm_emulate.h>
>  #include <asm/sections.h>
> @@ -1697,6 +1698,29 @@ static void teardown_hyp_mode(void)
>  	}
>  }
> 
> +#undef KVM_HYP_CPU_FTR_REG
> +#define KVM_HYP_CPU_FTR_REG(id, name) \
> +	{ .sys_id = id, .dst = (struct arm64_ftr_reg *)&kvm_nvhe_sym(name) },
> +static const struct __ftr_reg_copy_entry {
> +	u32			sys_id;
> +	struct arm64_ftr_reg	*dst;

Why do we need the whole data structure? Can't we just live with 
sys_val?

> +} hyp_ftr_regs[] = {
> +	#include <asm/kvm_cpufeature.h>
> +};

Can't this be made __initdata?

> +
> +static int copy_cpu_ftr_regs(void)
> +{
> +	int i, ret;
> +
> +	for (i = 0; i < ARRAY_SIZE(hyp_ftr_regs); i++) {
> +		ret = copy_ftr_reg(hyp_ftr_regs[i].sys_id, hyp_ftr_regs[i].dst);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
>  /**
>   * Inits Hyp-mode on all online CPUs
>   */
> @@ -1705,6 +1729,13 @@ static int init_hyp_mode(void)
>  	int cpu;
>  	int err = 0;
> 
> +	/*
> +	 * Copy the required CPU feature register in their EL2 counterpart
> +	 */
> +	err = copy_cpu_ftr_regs();
> +	if (err)
> +		return err;
> +

Just to keep things together, please move any sysreg manipulation into
sys_regs.c, most probably into kvm_sys_reg_table_init().

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...

_______________________________________________
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: Marc Zyngier <maz@kernel.org>
To: Quentin Perret <qperret@google.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>, James Morse <james.morse@arm.com>,
	Julien Thierry <julien.thierry.kdev@gmail.com>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Rob Herring <robh+dt@kernel.org>,
	Frank Rowand <frowand.list@gmail.com>,
	devicetree@vger.kernel.org, android-kvm@google.com,
	linux-kernel@vger.kernel.org, kernel-team@android.com,
	kvmarm@lists.cs.columbia.edu,
	linux-arm-kernel@lists.infradead.org,
	Fuad Tabba <tabba@google.com>,
	Mark Rutland <mark.rutland@arm.com>,
	David Brazdil <dbrazdil@google.com>
Subject: Re: [RFC PATCH v2 13/26] KVM: arm64: Enable access to sanitized CPU features at EL2
Date: Wed, 13 Jan 2021 11:33:13 +0000	[thread overview]
Message-ID: <d55643ea391f73a2297f499f3219ba8a@kernel.org> (raw)
In-Reply-To: <20210108121524.656872-14-qperret@google.com>

Hi Quentin,

On 2021-01-08 12:15, Quentin Perret wrote:
> Introduce the infrastructure in KVM enabling to copy CPU feature
> registers into EL2-owned data-structures, to allow reading sanitised
> values directly at EL2 in nVHE.
> 
> Given that only a subset of these features are being read by the
> hypervisor, the ones that need to be copied are to be listed under
> <asm/kvm_cpufeature.h> together with the name of the nVHE variable that
> will hold the copy.
> 
> While at it, introduce the first user of this infrastructure by
> implementing __flush_dcache_area at EL2, which needs
> arm64_ftr_reg_ctrel0.
> 
> Signed-off-by: Quentin Perret <qperret@google.com>
> ---
>  arch/arm64/include/asm/cpufeature.h     |  1 +
>  arch/arm64/include/asm/kvm_cpufeature.h | 17 ++++++++++++++
>  arch/arm64/kernel/cpufeature.c          | 12 ++++++++++
>  arch/arm64/kvm/arm.c                    | 31 +++++++++++++++++++++++++
>  arch/arm64/kvm/hyp/nvhe/Makefile        |  3 ++-
>  arch/arm64/kvm/hyp/nvhe/cache.S         | 13 +++++++++++
>  arch/arm64/kvm/hyp/nvhe/cpufeature.c    |  8 +++++++
>  7 files changed, 84 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm64/include/asm/kvm_cpufeature.h
>  create mode 100644 arch/arm64/kvm/hyp/nvhe/cache.S
>  create mode 100644 arch/arm64/kvm/hyp/nvhe/cpufeature.c
> 
> diff --git a/arch/arm64/include/asm/cpufeature.h
> b/arch/arm64/include/asm/cpufeature.h
> index 16063c813dcd..742e9bcc051b 100644
> --- a/arch/arm64/include/asm/cpufeature.h
> +++ b/arch/arm64/include/asm/cpufeature.h
> @@ -600,6 +600,7 @@ void __init setup_cpu_features(void);
>  void check_local_cpu_capabilities(void);
> 
>  u64 read_sanitised_ftr_reg(u32 id);
> +int copy_ftr_reg(u32 id, struct arm64_ftr_reg *dst);
> 
>  static inline bool cpu_supports_mixed_endian_el0(void)
>  {
> diff --git a/arch/arm64/include/asm/kvm_cpufeature.h
> b/arch/arm64/include/asm/kvm_cpufeature.h
> new file mode 100644
> index 000000000000..d34f85cba358
> --- /dev/null
> +++ b/arch/arm64/include/asm/kvm_cpufeature.h
> @@ -0,0 +1,17 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +/*
> + * Copyright (C) 2020 - Google LLC
> + * Author: Quentin Perret <qperret@google.com>
> + */
> +
> +#include <asm/cpufeature.h>
> +
> +#ifndef KVM_HYP_CPU_FTR_REG
> +#if defined(__KVM_NVHE_HYPERVISOR__)
> +#define KVM_HYP_CPU_FTR_REG(id, name) extern struct arm64_ftr_reg 
> name;
> +#else
> +#define KVM_HYP_CPU_FTR_REG(id, name) DECLARE_KVM_NVHE_SYM(name);
> +#endif
> +#endif
> +
> +KVM_HYP_CPU_FTR_REG(SYS_CTR_EL0, arm64_ftr_reg_ctrel0)
> diff --git a/arch/arm64/kernel/cpufeature.c 
> b/arch/arm64/kernel/cpufeature.c
> index bc3549663957..c2019aaaadc3 100644
> --- a/arch/arm64/kernel/cpufeature.c
> +++ b/arch/arm64/kernel/cpufeature.c
> @@ -1113,6 +1113,18 @@ u64 read_sanitised_ftr_reg(u32 id)
>  }
>  EXPORT_SYMBOL_GPL(read_sanitised_ftr_reg);
> 
> +int copy_ftr_reg(u32 id, struct arm64_ftr_reg *dst)
> +{
> +	struct arm64_ftr_reg *regp = get_arm64_ftr_reg(id);
> +
> +	if (!regp)
> +		return -EINVAL;
> +
> +	memcpy(dst, regp, sizeof(*regp));
> +
> +	return 0;
> +}
> +
>  #define read_sysreg_case(r)	\
>  	case r:		return read_sysreg_s(r)
> 
> diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
> index 51b53ca36dc5..9fd769349e9e 100644
> --- a/arch/arm64/kvm/arm.c
> +++ b/arch/arm64/kvm/arm.c
> @@ -34,6 +34,7 @@
>  #include <asm/virt.h>
>  #include <asm/kvm_arm.h>
>  #include <asm/kvm_asm.h>
> +#include <asm/kvm_cpufeature.h>
>  #include <asm/kvm_mmu.h>
>  #include <asm/kvm_emulate.h>
>  #include <asm/sections.h>
> @@ -1697,6 +1698,29 @@ static void teardown_hyp_mode(void)
>  	}
>  }
> 
> +#undef KVM_HYP_CPU_FTR_REG
> +#define KVM_HYP_CPU_FTR_REG(id, name) \
> +	{ .sys_id = id, .dst = (struct arm64_ftr_reg *)&kvm_nvhe_sym(name) },
> +static const struct __ftr_reg_copy_entry {
> +	u32			sys_id;
> +	struct arm64_ftr_reg	*dst;

Why do we need the whole data structure? Can't we just live with 
sys_val?

> +} hyp_ftr_regs[] = {
> +	#include <asm/kvm_cpufeature.h>
> +};

Can't this be made __initdata?

> +
> +static int copy_cpu_ftr_regs(void)
> +{
> +	int i, ret;
> +
> +	for (i = 0; i < ARRAY_SIZE(hyp_ftr_regs); i++) {
> +		ret = copy_ftr_reg(hyp_ftr_regs[i].sys_id, hyp_ftr_regs[i].dst);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}
> +
>  /**
>   * Inits Hyp-mode on all online CPUs
>   */
> @@ -1705,6 +1729,13 @@ static int init_hyp_mode(void)
>  	int cpu;
>  	int err = 0;
> 
> +	/*
> +	 * Copy the required CPU feature register in their EL2 counterpart
> +	 */
> +	err = copy_cpu_ftr_regs();
> +	if (err)
> +		return err;
> +

Just to keep things together, please move any sysreg manipulation into
sys_regs.c, most probably into kvm_sys_reg_table_init().

Thanks,

         M.
-- 
Jazz is not dead. It just smells funny...

  reply	other threads:[~2021-01-13 11:33 UTC|newest]

Thread overview: 295+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-08 12:14 [RFC PATCH v2 00/26] KVM/arm64: A stage 2 for the host Quentin Perret
2021-01-08 12:14 ` Quentin Perret
2021-01-08 12:14 ` Quentin Perret
2021-01-08 12:14 ` [RFC PATCH v2 01/26] arm64: lib: Annotate {clear, copy}_page() as position-independent Quentin Perret
2021-01-08 12:14   ` [RFC PATCH v2 01/26] arm64: lib: Annotate {clear,copy}_page() " Quentin Perret
2021-01-08 12:14   ` [RFC PATCH v2 01/26] arm64: lib: Annotate {clear, copy}_page() " Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 02/26] KVM: arm64: Link position-independent string routines into .hyp.text Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 03/26] arm64: kvm: Add standalone ticket spinlock implementation for use at hyp Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-01 17:28   ` Will Deacon
2021-02-01 17:28     ` Will Deacon
2021-02-01 17:28     ` Will Deacon
2021-02-01 17:40     ` Quentin Perret
2021-02-01 17:40       ` Quentin Perret
2021-02-01 17:40       ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 04/26] KVM: arm64: Initialize kvm_nvhe_init_params early Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-01 17:41   ` Will Deacon
2021-02-01 17:41     ` Will Deacon
2021-02-01 17:41     ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 05/26] KVM: arm64: Avoid free_page() in page-table allocator Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-01 17:46   ` Will Deacon
2021-02-01 17:46     ` Will Deacon
2021-02-01 17:46     ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 06/26] KVM: arm64: Factor memory allocation out of pgtable.c Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-01 18:16   ` Will Deacon
2021-02-01 18:16     ` Will Deacon
2021-02-01 18:16     ` Will Deacon
2021-02-01 18:32     ` Quentin Perret
2021-02-01 18:32       ` Quentin Perret
2021-02-01 18:32       ` Quentin Perret
2021-02-01 18:39       ` Will Deacon
2021-02-01 18:39         ` Will Deacon
2021-02-01 18:39         ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 07/26] KVM: arm64: Introduce a BSS section for use at Hyp Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-01 18:32   ` Will Deacon
2021-02-01 18:32     ` Will Deacon
2021-02-01 18:32     ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 08/26] KVM: arm64: Make kvm_call_hyp() a function call " Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-01 18:41   ` Will Deacon
2021-02-01 18:41     ` Will Deacon
2021-02-01 18:41     ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 09/26] KVM: arm64: Allow using kvm_nvhe_sym() in hyp code Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-01 18:43   ` Will Deacon
2021-02-01 18:43     ` Will Deacon
2021-02-01 18:43     ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 10/26] KVM: arm64: Introduce an early Hyp page allocator Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 18:15   ` kernel test robot
2021-02-01 19:00   ` Will Deacon
2021-02-01 19:00     ` Will Deacon
2021-02-01 19:00     ` Will Deacon
2021-02-02  9:44     ` Quentin Perret
2021-02-02  9:44       ` Quentin Perret
2021-02-02  9:44       ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 11/26] KVM: arm64: Stub CONFIG_DEBUG_LIST at Hyp Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-01 19:06   ` Will Deacon
2021-02-01 19:06     ` Will Deacon
2021-02-01 19:06     ` Will Deacon
2021-02-02  9:57     ` Quentin Perret
2021-02-02  9:57       ` Quentin Perret
2021-02-02  9:57       ` Quentin Perret
2021-02-02 10:00       ` Will Deacon
2021-02-02 10:00         ` Will Deacon
2021-02-02 10:00         ` Will Deacon
2021-02-02 10:14         ` Quentin Perret
2021-02-02 10:14           ` Quentin Perret
2021-02-02 10:14           ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 12/26] KVM: arm64: Introduce a Hyp buddy page allocator Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 19:21   ` kernel test robot
2021-02-02 18:13   ` Will Deacon
2021-02-02 18:13     ` Will Deacon
2021-02-02 18:13     ` Will Deacon
2021-02-03 18:33     ` Quentin Perret
2021-02-03 18:33       ` Quentin Perret
2021-02-03 18:33       ` Quentin Perret
2021-02-04 14:31       ` Will Deacon
2021-02-04 14:31         ` Will Deacon
2021-02-04 14:31         ` Will Deacon
2021-02-04 14:52         ` Quentin Perret
2021-02-04 14:52           ` Quentin Perret
2021-02-04 14:52           ` Quentin Perret
2021-02-04 17:48           ` Will Deacon
2021-02-04 17:48             ` Will Deacon
2021-02-04 17:48             ` Will Deacon
2021-02-04 18:01             ` Quentin Perret
2021-02-04 18:01               ` Quentin Perret
2021-02-04 18:01               ` Quentin Perret
2021-02-04 18:13               ` Will Deacon
2021-02-04 18:13                 ` Will Deacon
2021-02-04 18:13                 ` Will Deacon
2021-02-04 18:24                 ` Quentin Perret
2021-02-04 18:24                   ` Quentin Perret
2021-02-04 18:24                   ` Quentin Perret
2021-02-04 18:19         ` Quentin Perret
2021-02-04 18:19           ` Quentin Perret
2021-02-04 18:19           ` Quentin Perret
2021-02-04 18:24           ` Will Deacon
2021-02-04 18:24             ` Will Deacon
2021-02-04 18:24             ` Will Deacon
2021-02-04 18:32             ` Quentin Perret
2021-02-04 18:32               ` Quentin Perret
2021-02-04 18:32               ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 13/26] KVM: arm64: Enable access to sanitized CPU features at EL2 Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-13 11:33   ` Marc Zyngier [this message]
2021-01-13 11:33     ` Marc Zyngier
2021-01-13 11:33     ` Marc Zyngier
2021-01-13 14:23     ` Quentin Perret
2021-01-13 14:23       ` Quentin Perret
2021-01-13 14:23       ` Quentin Perret
2021-01-13 14:35       ` Quentin Perret
2021-01-13 14:35         ` Quentin Perret
2021-01-13 14:35         ` Quentin Perret
2021-01-13 17:27         ` Marc Zyngier
2021-01-13 17:27           ` Marc Zyngier
2021-01-13 17:27           ` Marc Zyngier
2021-01-13 18:28           ` Quentin Perret
2021-01-13 18:28             ` Quentin Perret
2021-01-13 18:28             ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 14/26] KVM: arm64: Factor out vector address calculation Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-02 18:24   ` Will Deacon
2021-02-02 18:24     ` Will Deacon
2021-02-02 18:24     ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 15/26] of/fdt: Introduce early_init_dt_add_memory_hyp() Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 14:54   ` kernel test robot
2021-01-08 18:58   ` kernel test robot
2021-01-11 14:45   ` Rob Herring
2021-01-11 14:45     ` Rob Herring
2021-01-11 14:45     ` Rob Herring
2021-01-12  9:51     ` Quentin Perret
2021-01-12  9:51       ` Quentin Perret
2021-01-12  9:51       ` Quentin Perret
2021-01-12 14:10       ` Rob Herring
2021-01-12 14:10         ` Rob Herring
2021-01-12 14:10         ` Rob Herring
2021-01-12 14:26         ` Quentin Perret
2021-01-12 14:26           ` Quentin Perret
2021-01-12 14:26           ` Quentin Perret
2021-01-12 15:53           ` Rob Herring
2021-01-12 15:53             ` Rob Herring
2021-01-12 15:53             ` Rob Herring
2021-01-12 16:15             ` Quentin Perret
2021-01-12 16:15               ` Quentin Perret
2021-01-12 16:15               ` Quentin Perret
2021-01-12 16:45               ` Rob Herring
2021-01-12 16:45                 ` Rob Herring
2021-01-12 16:45                 ` Rob Herring
2021-01-12 16:50                 ` Quentin Perret
2021-01-12 16:50                   ` Quentin Perret
2021-01-12 16:50                   ` Quentin Perret
2021-01-15 11:49                   ` Quentin Perret
2021-01-15 11:49                     ` Quentin Perret
2021-01-15 11:49                     ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 16/26] KVM: arm64: Prepare Hyp memory protection Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-03 14:37   ` Will Deacon
2021-02-03 14:37     ` Will Deacon
2021-02-03 14:37     ` Will Deacon
2021-02-04 10:47     ` Quentin Perret
2021-02-04 10:47       ` Quentin Perret
2021-02-04 10:47       ` Quentin Perret
2021-02-05 17:56       ` Will Deacon
2021-02-05 17:56         ` Will Deacon
2021-02-05 17:56         ` Will Deacon
2021-02-09 10:00       ` Quentin Perret
2021-02-09 10:00         ` Quentin Perret
2021-02-09 10:00         ` Quentin Perret
2021-02-09 12:23         ` Will Deacon
2021-02-09 12:23           ` Will Deacon
2021-02-09 12:23           ` Will Deacon
2021-02-19 18:32     ` Sean Christopherson
2021-02-19 18:32       ` Sean Christopherson
2021-02-19 18:32       ` Sean Christopherson
2021-02-22 11:04       ` Quentin Perret
2021-02-22 11:04         ` Quentin Perret
2021-02-22 11:04         ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 17/26] KVM: arm64: Elevate Hyp mappings creation at EL2 Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-03 15:31   ` Will Deacon
2021-02-03 15:31     ` Will Deacon
2021-02-03 15:31     ` Will Deacon
2021-02-04 11:08     ` Quentin Perret
2021-02-04 11:08       ` Quentin Perret
2021-02-04 11:08       ` Quentin Perret
2021-02-05 18:01       ` Will Deacon
2021-02-05 18:01         ` Will Deacon
2021-02-05 18:01         ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 18/26] KVM: arm64: Use kvm_arch for stage 2 pgtable Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-03 15:34   ` Will Deacon
2021-02-03 15:34     ` Will Deacon
2021-02-03 15:34     ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 19/26] KVM: arm64: Use kvm_arch in kvm_s2_mmu Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-03 15:38   ` Will Deacon
2021-02-03 15:38     ` Will Deacon
2021-02-03 15:38     ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 20/26] KVM: arm64: Set host stage 2 using kvm_nvhe_init_params Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-03 16:05   ` Will Deacon
2021-02-03 16:05     ` Will Deacon
2021-02-03 16:05     ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 21/26] KVM: arm64: Refactor kvm_arm_setup_stage2() Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-03 15:53   ` Will Deacon
2021-02-03 15:53     ` Will Deacon
2021-02-03 15:53     ` Will Deacon
2021-02-04 14:07     ` Quentin Perret
2021-02-04 14:07       ` Quentin Perret
2021-02-04 14:07       ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 22/26] KVM: arm64: Refactor __load_guest_stage2() Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-03 15:54   ` Will Deacon
2021-02-03 15:54     ` Will Deacon
2021-02-03 15:54     ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 23/26] KVM: arm64: Refactor __populate_fault_info() Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-03 15:58   ` Will Deacon
2021-02-03 15:58     ` Will Deacon
2021-02-03 15:58     ` Will Deacon
2021-02-04 14:18     ` Quentin Perret
2021-02-04 14:18       ` Quentin Perret
2021-02-04 14:18       ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 24/26] KVM: arm64: Make memcache anonymous in pgtable allocator Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-03 15:59   ` Will Deacon
2021-02-03 15:59     ` Will Deacon
2021-02-03 15:59     ` Will Deacon
2021-02-04 14:24     ` Quentin Perret
2021-02-04 14:24       ` Quentin Perret
2021-02-04 14:24       ` Quentin Perret
2021-02-04 14:36       ` Will Deacon
2021-02-04 14:36         ` Will Deacon
2021-02-04 14:36         ` Will Deacon
2021-01-08 12:15 ` [RFC PATCH v2 25/26] KVM: arm64: Reserve memory for host stage 2 Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15 ` [RFC PATCH v2 26/26] KVM: arm64: Wrap the host with a " Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-01-08 12:15   ` Quentin Perret
2021-02-03 16:11   ` Will Deacon
2021-02-03 16:11     ` Will Deacon
2021-02-03 16:11     ` Will Deacon
2021-02-04 14:26     ` Quentin Perret
2021-02-04 14:26       ` Quentin Perret
2021-02-04 14:26       ` Quentin Perret
2021-02-04 14:37       ` Will Deacon
2021-02-04 14:37         ` Will Deacon
2021-02-04 14:37         ` Will Deacon
2021-02-17 16:27 ` [RFC PATCH v2 00/26] KVM/arm64: A stage 2 for the host Mate Toth-Pal
2021-02-17 16:27   ` Mate Toth-Pal
2021-02-17 16:27   ` Mate Toth-Pal
2021-02-17 17:24   ` Quentin Perret
2021-02-17 17:24     ` Quentin Perret
2021-02-17 17:24     ` Quentin Perret
2021-02-19 17:54 ` Sean Christopherson
2021-02-19 17:54   ` Sean Christopherson
2021-02-19 17:54   ` Sean Christopherson
2021-02-19 17:57   ` Quentin Perret
2021-02-19 17:57     ` Quentin Perret
2021-02-19 17:57     ` Quentin Perret

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=d55643ea391f73a2297f499f3219ba8a@kernel.org \
    --to=maz@kernel.org \
    --cc=android-kvm@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=kernel-team@android.com \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=qperret@google.com \
    --cc=robh+dt@kernel.org \
    --cc=tabba@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.