Re: [PATCH 1/4] KVM: delete .change_pte MMU notifier callback

From: Sean Christopherson
Date: Fri Apr 19 2024 - 09:58:28 EST


On Fri, Apr 19, 2024, Will Deacon wrote:
> > @@ -663,10 +669,22 @@ static __always_inline kvm_mn_ret_t __kvm_handle_hva_range(struct kvm *kvm,
> > break;
> > }
> > r.ret |= range->handler(kvm, &gfn_range);
> > +
> > + /*
> > + * Use a precise gfn-based TLB flush when possible, as
> > + * most mmu_notifier events affect a small-ish range.
> > + * Fall back to a full TLB flush if the gfn-based flush
> > + * fails, and don't bother trying the gfn-based flush
> > + * if a full flush is already pending.
> > + */
> > + if (range->flush_on_ret && !need_flush && r.ret &&
> > + kvm_arch_flush_remote_tlbs_range(kvm, gfn_range.start,
> > + gfn_range.end - gfn_range.start + 1))
>
> What's that '+ 1' needed for here?

(a) To see if you're paying attention.
(b) Because more is always better.
(c) Because math is hard.
(d) Because I haven't tested this.
(e) Both (c) and (d).