Re: [PATCH 00/16] KVM: x86: pass arguments on the page fault path via struct kvm_page_fault

From: David Matlack
Date: Thu Aug 12 2021 - 13:44:54 EST


On Sat, Aug 7, 2021 at 6:49 AM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
>
> This is a revival of Isaku's patches from
> https://lore.kernel.org/kvm/cover.1618914692.git.isaku.yamahata@xxxxxxxxx/.
> The current kvm page fault handlers passes around many arguments to the
> functions. To simplify those arguments and local variables, introduce
> a data structure, struct kvm_page_fault, to hold those arguments and
> variables. struct kvm_page_fault is allocated on stack on the caller
> of kvm fault handler, kvm_mmu_do_page_fault(), and passed around.

(I was out of office for the past few days so I'm just getting around
to this series now.)

Overall it looks good. Thanks for getting it cleaned up and merged
into kvm/queue. I'll get Ben's memslot series applied on top of this,
do a bit of performance testing, and send it out probably tomorrow or
early next week.

>
> The patches were redone from scratch based on the suggested struct layout
> from the review (https://lore.kernel.org/kvm/YK65V++S2Kt1OLTu@xxxxxxxxxx/)
> and the subjects of Isaku's patches, so I kept authorship for myself
> and gave him a "Suggested-by" tag.
>
> The first two steps are unrelated cleanups that come in handy later on.
>
> Paolo
>
> Paolo Bonzini (16):
> KVM: MMU: pass unadulterated gpa to direct_page_fault
> KVM: x86: clamp host mapping level to max_level in
> kvm_mmu_max_mapping_level
> KVM: MMU: Introduce struct kvm_page_fault
> KVM: MMU: change mmu->page_fault() arguments to kvm_page_fault
> KVM: MMU: change direct_page_fault() arguments to kvm_page_fault
> KVM: MMU: change page_fault_handle_page_track() arguments to
> kvm_page_fault
> KVM: MMU: change try_async_pf() arguments to kvm_page_fault
> KVM: MMU: change handle_abnormal_pfn() arguments to kvm_page_fault
> KVM: MMU: change __direct_map() arguments to kvm_page_fault
> KVM: MMU: change FNAME(fetch)() arguments to kvm_page_fault
> KVM: MMU: change kvm_tdp_mmu_map() arguments to kvm_page_fault
> KVM: MMU: change tdp_mmu_map_handle_target_level() arguments to
> kvm_page_fault
> KVM: MMU: change fast_page_fault() arguments to kvm_page_fault
> KVM: MMU: change kvm_mmu_hugepage_adjust() arguments to kvm_page_fault
> KVM: MMU: change disallowed_hugepage_adjust() arguments to
> kvm_page_fault
> KVM: MMU: change tracepoints arguments to kvm_page_fault
>
> arch/x86/include/asm/kvm_host.h | 4 +-
> arch/x86/kvm/mmu.h | 81 ++++++++++-
> arch/x86/kvm/mmu/mmu.c | 241 ++++++++++++++------------------
> arch/x86/kvm/mmu/mmu_internal.h | 13 +-
> arch/x86/kvm/mmu/mmutrace.h | 18 +--
> arch/x86/kvm/mmu/paging_tmpl.h | 96 ++++++-------
> arch/x86/kvm/mmu/tdp_mmu.c | 49 +++----
> arch/x86/kvm/mmu/tdp_mmu.h | 4 +-
> 8 files changed, 253 insertions(+), 253 deletions(-)
>
> --
> 2.27.0
>