On Wed, May 5, 2021 at 9:00 AM Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > On Wed, May 05, 2021, Kai Huang wrote: > > Currently tdp_mmu_map_handle_target_level() returns 0, which is > > RET_PF_RETRY, when page fault is actually fixed. This makes > > kvm_tdp_mmu_map() also return RET_PF_RETRY in this case, instead of > > RET_PF_FIXED. Fix by initializing ret to RET_PF_FIXED. > > Probably worth adding a blurb to call out that the bad return value is benign > since kvm_mmu_page_fault() resumes the guest on RET_PF_RETRY or RET_PF_FIXED. > And for good measure, a Fixes without stable@. > > Fixes: bb18842e2111 ("kvm: x86/mmu: Add TDP MMU PF handler") > > Reviewed-by: Sean Christopherson <seanjc@xxxxxxxxxx> Haha I was just about to add the same two comments. Besides those, this patch looks good to me as well. Reviewed-by: Ben Gardon <bgardon@xxxxxxxxxx> > > > Side topic... > > Ben, does the TDP MMU intentionally not prefetch pages? If so, why not? It does not currently prefetch pages, but there's no reason it shouldn't. It simply hasn't been implemented yet. > > > Signed-off-by: Kai Huang <kai.huang@xxxxxxxxx> > > --- > > arch/x86/kvm/mmu/tdp_mmu.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c > > index ff0ae030004d..1cad4c9f7c34 100644 > > --- a/arch/x86/kvm/mmu/tdp_mmu.c > > +++ b/arch/x86/kvm/mmu/tdp_mmu.c > > @@ -905,7 +905,7 @@ static int tdp_mmu_map_handle_target_level(struct kvm_vcpu *vcpu, int write, > > kvm_pfn_t pfn, bool prefault) > > { > > u64 new_spte; > > - int ret = 0; > > + int ret = RET_PF_FIXED; > > int make_spte_ret = 0; > > > > if (unlikely(is_noslot_pfn(pfn))) > > -- > > 2.31.1 > >