From: Marc Zyngier <maz@kernel.org>
To: Oliver Upton <oliver.upton@linux.dev>
Cc: "Will Deacon" <will@kernel.org>,
kvmarm@lists.linux.dev,
"Vincent Donnefort" <vdonnefort@google.com>,
"James Morse" <james.morse@arm.com>,
"Mark Rutland" <mark.rutland@arm.com>,
"Alexandru Elisei" <alexandru.elisei@arm.com>,
kernel-team@android.com, "Quentin Perret" <qperret@google.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Suzuki K Poulose" <suzuki.poulose@arm.com>,
"Fuad Tabba" <tabba@google.com>,
kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
"Sean Christopherson" <seanjc@google.com>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Chao Peng" <chao.p.peng@linux.intel.com>
Subject: Re: [PATCH v6 00/26] KVM: arm64: Introduce pKVM hyp VM and vCPU state at EL2
Date: Sat, 12 Nov 2022 11:34:09 +0000 [thread overview]
Message-ID: <86bkpcpfta.wl-maz@kernel.org> (raw)
In-Reply-To: <Y26rzvyLQ/1juAAz@google.com>
On Fri, 11 Nov 2022 20:08:46 +0000,
Oliver Upton <oliver.upton@linux.dev> wrote:
>
> On Fri, Nov 11, 2022 at 07:06:14PM +0000, Marc Zyngier wrote:
> > On Thu, 10 Nov 2022 19:02:33 +0000, Will Deacon wrote:
> > > This is version six of the pKVM EL2 state series, extending the pKVM
> > > hypervisor code so that it can dynamically instantiate and manage VM
> > > data structures without the host being able to access them directly.
> > > These structures consist of a hyp VM, a set of hyp vCPUs and the stage-2
> > > page-table for the MMU. The pages used to hold the hypervisor structures
> > > are returned to the host when the VM is destroyed.
> > >
> > > [...]
> >
> > As for Oliver's series, I've tentatively applied this to -next.
> > I've dropped Oliver's patch for now, but kept the RFC one. Maybe I'll
> > change my mind.
> >
> > Anyway, there was an interesting number of conflicts between the two
> > series, which I tried to resolve as well as I could, but it is likely
> > I broke something (although it compiles, so it must be perfect).
> >
> > Please have a look and shout if/when you spot something.
>
> Here is where you and I diverged on the conflict resolution, neither
> amounts to a whole lot but feel free to squash in. Hoping that Will + co
> can test the pKVM side of this.
>
> diff --git a/arch/arm64/kvm/hyp/nvhe/mm.c b/arch/arm64/kvm/hyp/nvhe/mm.c
> index f2c4672697c2..318298eb3d6b 100644
> --- a/arch/arm64/kvm/hyp/nvhe/mm.c
> +++ b/arch/arm64/kvm/hyp/nvhe/mm.c
> @@ -265,7 +265,7 @@ static int __create_fixmap_slot_cb(const struct kvm_pgtable_visit_ctx *ctx,
> {
> struct hyp_fixmap_slot *slot = per_cpu_ptr(&fixmap_slots, (u64)ctx->arg);
>
> - if (!kvm_pte_valid(*ctx->ptep) || ctx->level != KVM_PGTABLE_MAX_LEVELS - 1)
> + if (!kvm_pte_valid(ctx->old) || ctx->level != KVM_PGTABLE_MAX_LEVELS - 1)
> return -EINVAL;
>
> slot->addr = ctx->addr;
> diff --git a/arch/arm64/kvm/hyp/nvhe/setup.c b/arch/arm64/kvm/hyp/nvhe/setup.c
> index b47d969ae4d3..110f04627785 100644
> --- a/arch/arm64/kvm/hyp/nvhe/setup.c
> +++ b/arch/arm64/kvm/hyp/nvhe/setup.c
> @@ -190,7 +190,7 @@ static void hpool_put_page(void *addr)
> }
>
> static int fix_host_ownership_walker(const struct kvm_pgtable_visit_ctx *ctx,
> - enum kvm_pgtable_walk_flags visit)
> + enum kvm_pgtable_walk_flags visit)
> {
> enum kvm_pgtable_prot prot;
> enum pkvm_page_state state;
>
Thanks. I've folded that in the resolution and regenerated the -next
branch after taking another patch from Gavin in the dirty-ring series.
I've managed to test the result on both VHE and nVHE this morning, and
the wheels are still attached. I don't have a good setup for pKVM at
the moment though, and it is likely that the rest of the monster
series will need some rework.
M.
--
Without deviation from the norm, progress is not possible.
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Oliver Upton <oliver.upton@linux.dev>
Cc: "Will Deacon" <will@kernel.org>,
kvmarm@lists.linux.dev,
"Vincent Donnefort" <vdonnefort@google.com>,
"James Morse" <james.morse@arm.com>,
"Mark Rutland" <mark.rutland@arm.com>,
"Alexandru Elisei" <alexandru.elisei@arm.com>,
kernel-team@android.com, "Quentin Perret" <qperret@google.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Suzuki K Poulose" <suzuki.poulose@arm.com>,
"Fuad Tabba" <tabba@google.com>,
kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
"Sean Christopherson" <seanjc@google.com>,
"Catalin Marinas" <catalin.marinas@arm.com>,
"Chao Peng" <chao.p.peng@linux.intel.com>
Subject: Re: [PATCH v6 00/26] KVM: arm64: Introduce pKVM hyp VM and vCPU state at EL2
Date: Sat, 12 Nov 2022 11:34:09 +0000 [thread overview]
Message-ID: <86bkpcpfta.wl-maz@kernel.org> (raw)
In-Reply-To: <Y26rzvyLQ/1juAAz@google.com>
On Fri, 11 Nov 2022 20:08:46 +0000,
Oliver Upton <oliver.upton@linux.dev> wrote:
>
> On Fri, Nov 11, 2022 at 07:06:14PM +0000, Marc Zyngier wrote:
> > On Thu, 10 Nov 2022 19:02:33 +0000, Will Deacon wrote:
> > > This is version six of the pKVM EL2 state series, extending the pKVM
> > > hypervisor code so that it can dynamically instantiate and manage VM
> > > data structures without the host being able to access them directly.
> > > These structures consist of a hyp VM, a set of hyp vCPUs and the stage-2
> > > page-table for the MMU. The pages used to hold the hypervisor structures
> > > are returned to the host when the VM is destroyed.
> > >
> > > [...]
> >
> > As for Oliver's series, I've tentatively applied this to -next.
> > I've dropped Oliver's patch for now, but kept the RFC one. Maybe I'll
> > change my mind.
> >
> > Anyway, there was an interesting number of conflicts between the two
> > series, which I tried to resolve as well as I could, but it is likely
> > I broke something (although it compiles, so it must be perfect).
> >
> > Please have a look and shout if/when you spot something.
>
> Here is where you and I diverged on the conflict resolution, neither
> amounts to a whole lot but feel free to squash in. Hoping that Will + co
> can test the pKVM side of this.
>
> diff --git a/arch/arm64/kvm/hyp/nvhe/mm.c b/arch/arm64/kvm/hyp/nvhe/mm.c
> index f2c4672697c2..318298eb3d6b 100644
> --- a/arch/arm64/kvm/hyp/nvhe/mm.c
> +++ b/arch/arm64/kvm/hyp/nvhe/mm.c
> @@ -265,7 +265,7 @@ static int __create_fixmap_slot_cb(const struct kvm_pgtable_visit_ctx *ctx,
> {
> struct hyp_fixmap_slot *slot = per_cpu_ptr(&fixmap_slots, (u64)ctx->arg);
>
> - if (!kvm_pte_valid(*ctx->ptep) || ctx->level != KVM_PGTABLE_MAX_LEVELS - 1)
> + if (!kvm_pte_valid(ctx->old) || ctx->level != KVM_PGTABLE_MAX_LEVELS - 1)
> return -EINVAL;
>
> slot->addr = ctx->addr;
> diff --git a/arch/arm64/kvm/hyp/nvhe/setup.c b/arch/arm64/kvm/hyp/nvhe/setup.c
> index b47d969ae4d3..110f04627785 100644
> --- a/arch/arm64/kvm/hyp/nvhe/setup.c
> +++ b/arch/arm64/kvm/hyp/nvhe/setup.c
> @@ -190,7 +190,7 @@ static void hpool_put_page(void *addr)
> }
>
> static int fix_host_ownership_walker(const struct kvm_pgtable_visit_ctx *ctx,
> - enum kvm_pgtable_walk_flags visit)
> + enum kvm_pgtable_walk_flags visit)
> {
> enum kvm_pgtable_prot prot;
> enum pkvm_page_state state;
>
Thanks. I've folded that in the resolution and regenerated the -next
branch after taking another patch from Gavin in the dirty-ring series.
I've managed to test the result on both VHE and nVHE this morning, and
the wheels are still attached. I don't have a good setup for pKVM at
the moment though, and it is likely that the rest of the monster
series will need some rework.
M.
--
Without deviation from the norm, progress is not possible.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-11-12 11:34 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-10 19:02 [PATCH v6 00/26] KVM: arm64: Introduce pKVM hyp VM and vCPU state at EL2 Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 01/26] KVM: arm64: Move hyp refcount manipulation helpers to common header file Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 02/26] KVM: arm64: Allow attaching of non-coalescable pages to a hyp pool Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 03/26] KVM: arm64: Back the hypervisor 'struct hyp_page' array for all memory Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 04/26] KVM: arm64: Fix-up hyp stage-1 refcounts for all pages mapped at EL2 Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 05/26] KVM: arm64: Unify identifiers used to distinguish host and hypervisor Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 06/26] KVM: arm64: Implement do_donate() helper for donating memory Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 07/26] KVM: arm64: Prevent the donation of no-map pages Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 08/26] KVM: arm64: Add helpers to pin memory shared with the hypervisor at EL2 Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 09/26] KVM: arm64: Include asm/kvm_mmu.h in nvhe/mem_protect.h Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 10/26] KVM: arm64: Add hyp_spinlock_t static initializer Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 11/26] KVM: arm64: Rename 'host_kvm' to 'host_mmu' Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 12/26] KVM: arm64: Add infrastructure to create and track pKVM instances at EL2 Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-11 17:11 ` Marc Zyngier
2022-11-11 17:11 ` Marc Zyngier
2022-11-10 19:02 ` [PATCH v6 13/26] KVM: arm64: Instantiate pKVM hypervisor VM and vCPU structures from EL1 Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 14/26] KVM: arm64: Add per-cpu fixmap infrastructure at EL2 Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 15/26] KVM: arm64: Initialise hypervisor copies of host symbols unconditionally Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 16/26] KVM: arm64: Provide I-cache invalidation by virtual address at EL2 Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 17/26] KVM: arm64: Add generic hyp_memcache helpers Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 18/26] KVM: arm64: Consolidate stage-2 initialisation into a single function Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 19/26] KVM: arm64: Instantiate guest stage-2 page-tables at EL2 Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 20/26] KVM: arm64: Return guest memory from EL2 via dedicated teardown memcache Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 21/26] KVM: arm64: Unmap 'kvm_arm_hyp_percpu_base' from the host Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 22/26] KVM: arm64: Maintain a copy of 'kvm_arm_vmid_bits' at EL2 Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 23/26] KVM: arm64: Explicitly map 'kvm_vgic_global_state' " Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 24/26] KVM: arm64: Don't unnecessarily map host kernel sections " Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [PATCH v6 25/26] KVM: arm64: Clean out the odd handling of completer_addr Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-10 19:02 ` [RFC PATCH v6 26/26] KVM: arm64: Use the pKVM hyp vCPU structure in handle___kvm_vcpu_run() Will Deacon
2022-11-10 19:02 ` Will Deacon
2022-11-11 16:54 ` [PATCH v6 00/26] KVM: arm64: Introduce pKVM hyp VM and vCPU state at EL2 Marc Zyngier
2022-11-11 16:54 ` Marc Zyngier
2022-11-11 19:42 ` Oliver Upton
2022-11-11 19:42 ` Oliver Upton
2022-11-14 18:19 ` Will Deacon
2022-11-14 18:19 ` Will Deacon
2022-11-11 19:06 ` Marc Zyngier
2022-11-11 19:06 ` Marc Zyngier
2022-11-11 20:08 ` Oliver Upton
2022-11-11 20:08 ` Oliver Upton
2022-11-12 11:34 ` Marc Zyngier [this message]
2022-11-12 11:34 ` Marc Zyngier
2022-11-14 19:30 ` Will Deacon
2022-11-14 19:30 ` Will Deacon
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=86bkpcpfta.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=alexandru.elisei@arm.com \
--cc=catalin.marinas@arm.com \
--cc=chao.p.peng@linux.intel.com \
--cc=james.morse@arm.com \
--cc=kernel-team@android.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=oliver.upton@linux.dev \
--cc=philmd@linaro.org \
--cc=qperret@google.com \
--cc=seanjc@google.com \
--cc=suzuki.poulose@arm.com \
--cc=tabba@google.com \
--cc=vdonnefort@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.