On Thu, 2024-07-04 at 16:51 +0800, Yan Zhao wrote: > On Wed, Jun 19, 2024 at 03:36:10PM -0700, Rick Edgecombe wrote: > > diff --git a/arch/x86/kvm/mmu/tdp_mmu.h b/arch/x86/kvm/mmu/tdp_mmu.h > > index b887c225ff24..2903f03a34be 100644 > > --- a/arch/x86/kvm/mmu/tdp_mmu.h > > +++ b/arch/x86/kvm/mmu/tdp_mmu.h > > @@ -10,7 +10,7 @@ > > void kvm_mmu_init_tdp_mmu(struct kvm *kvm); > > void kvm_mmu_uninit_tdp_mmu(struct kvm *kvm); > > > > -void kvm_tdp_mmu_alloc_root(struct kvm_vcpu *vcpu); > > +void kvm_tdp_mmu_alloc_root(struct kvm_vcpu *vcpu, bool private); > > > > __must_check static inline bool kvm_tdp_mmu_get_root(struct kvm_mmu_page > > *root) > This function name is very similar to below tdp_mmu_get_root(). That is true. > > > +static inline struct kvm_mmu_page *tdp_mmu_get_root_for_fault(struct > > kvm_vcpu *vcpu, > > + struct > > kvm_page_fault *fault) > > +{ > > + if (unlikely(!kvm_is_addr_direct(vcpu->kvm, fault->addr))) > > + return root_to_sp(vcpu->arch.mmu->mirror_root_hpa); > > + > > + return root_to_sp(vcpu->arch.mmu->root.hpa); > > +} > > + > > +static inline struct kvm_mmu_page *tdp_mmu_get_root(struct kvm_vcpu *vcpu, > > + enum > > kvm_tdp_mmu_root_types type) > > +{ > > + if (unlikely(type == KVM_MIRROR_ROOTS)) > > + return root_to_sp(vcpu->arch.mmu->mirror_root_hpa); > > + > > + return root_to_sp(vcpu->arch.mmu->root.hpa); > > +} > No need to put the two functions in tdp_mmu.h as they are not called in mmu.c. I think it is nice to have the root/enum logic above close together. > > Could we move them to tdp_mmu.c and rename them to something like > tdp_mmu_type_to_root() and tdp_mmu_fault_to_root() ? tdp_mmu_get_root_for_fault() was proposed by Paolo, and tdp_mmu_get_root() was discussed without comment. Not to say there is anything wrong with the names proposed, but I think this is wading into bikeshedding territory at this stage.