From: Oliver Upton <oliver.upton@linux.dev>
To: Sean Christopherson <seanjc@google.com>
Cc: Marc Zyngier <maz@kernel.org>,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
linux-kernel@vger.kernel.org,
James Houghton <jthoughton@google.com>
Subject: Re: [RFC PATCH 05/16] KVM: arm64: Introduce "struct kvm_page_fault" for tracking abort state
Date: Thu, 21 Aug 2025 15:31:52 -0700 [thread overview]
Message-ID: <aKeeRynpwFTSONfm@linux.dev> (raw)
In-Reply-To: <20250821210042.3451147-6-seanjc@google.com>
Hey Sean,
On Thu, Aug 21, 2025 at 02:00:31PM -0700, Sean Christopherson wrote:
> Add and use a kvm_page_fault structure to track state when handling a
> guest abort. Collecting everything in a single structure will enable a
> variety of cleanups (reduce the number of params passed to helpers), and
> will pave the way toward using "struct kvm_page_fault" in arch-neutral KVM
> code, e.g. to consolidate logic for KVM_EXIT_MEMORY_FAULT.
>
> No functional change intended.
>
> Cc: James Houghton <jthoughton@google.com>
> Link: https://lore.kernel.org/all/20250618042424.330664-1-jthoughton@google.com
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
> arch/arm64/include/asm/kvm_host.h | 18 ++++
> arch/arm64/kvm/mmu.c | 143 ++++++++++++++----------------
> 2 files changed, 87 insertions(+), 74 deletions(-)
>
> diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
> index 2f2394cce24e..4623cbc1edf4 100644
> --- a/arch/arm64/include/asm/kvm_host.h
> +++ b/arch/arm64/include/asm/kvm_host.h
> @@ -413,6 +413,24 @@ struct kvm_vcpu_fault_info {
> u64 disr_el1; /* Deferred [SError] Status Register */
> };
>
> +struct kvm_page_fault {
> + const u64 esr;
> + const bool exec;
> + const bool write;
> + const bool is_perm;
Hmm... these might be better represented as predicates that take a
pointer to this struct and we just compute it based on ESR. That'd have
the benefit in the arch-neutral code where 'struct kvm_page_fault' is an
opaque type and we don't need to align field names/types.
> + phys_addr_t fault_ipa; /* The address we faulted on */
> + phys_addr_t ipa; /* Always the IPA in the L1 guest phys space */
NYC, but this also seems like a good opportunity to rename + retype
these guys. Specifically:
fault_ipa => ipa
ipa => canonical_ipa
would clarify these and align with the verbiage we currently use to talk
about nested.
Thanks,
Oliver
next prev parent reply other threads:[~2025-08-21 22:32 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-21 21:00 [RFC PATCH 00/16] KVM: arm64: Add "struct kvm_page_fault" Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 01/16] KVM: arm64: Drop nested "esr" to eliminate variable shadowing Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 02/16] KVM: arm64: Get iabt status on-demand Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 03/16] KVM: arm64: Move SRCU-protected region of kvm_handle_guest_abort() to helper Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 04/16] KVM: arm64: Use guard(srcu) in kvm_handle_guest_abort() Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 05/16] KVM: arm64: Introduce "struct kvm_page_fault" for tracking abort state Sean Christopherson
2025-08-21 22:31 ` Oliver Upton [this message]
2025-08-26 18:58 ` Sean Christopherson
2025-08-26 19:29 ` Oliver Upton
2025-08-26 21:29 ` Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 06/16] KVM: arm64: Pass kvm_page_fault pointer to transparent_hugepage_adjust() Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 07/16] KVM: arm64: Pass @fault to fault_supports_stage2_huge_mapping() Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 08/16] KVM: arm64: Add helper to get permission fault granule from ESR Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 09/16] KVM: arm64: Track perm fault granule in "struct kvm_page_fault" Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 10/16] KVM: arm64: Drop local vfio_allow_any_uc, use vm_flags snapshot Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 11/16] KVM: arm64: Drop local mte_allowed, " Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 12/16] KVM: arm64: Move VMA-related information into "struct kvm_page_fault" Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 13/16] KVM: arm64: Stash "mmu_seq" in " Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 14/16] KVM: arm64: Track "forced" information " Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 15/16] KVM: arm64: Extract mmap_lock-protected code to helper for user mem aborts Sean Christopherson
2025-08-21 21:00 ` [RFC PATCH 16/16] KVM: arm64: Don't bother nullifying "vma" in mem abort path Sean Christopherson
2025-08-21 22:39 ` [RFC PATCH 00/16] KVM: arm64: Add "struct kvm_page_fault" 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=aKeeRynpwFTSONfm@linux.dev \
--to=oliver.upton@linux.dev \
--cc=jthoughton@google.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maz@kernel.org \
--cc=seanjc@google.com \
/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.