All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: David Matlack <dmatlack@google.com>
Cc: Hou Wenlong <houwenlong.hwl@antgroup.com>,
	kvm list <kvm@vger.kernel.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	X86 ML <x86@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2 6/6] KVM: x86/mmu: Use 1 as the size of gfn range for tlb flushing in FNAME(invlpg)()
Date: Fri, 16 Sep 2022 19:33:33 +0000	[thread overview]
Message-ID: <YyTPjSl8lNPWWSlL@google.com> (raw)
In-Reply-To: <CALzav=c7Y_Do0vk_AtezYMBss6eRDGzyHovMYArXQ4JfmfKoOw@mail.gmail.com>

On Tue, Sep 13, 2022, David Matlack wrote:
> On Tue, Sep 13, 2022 at 5:58 AM Hou Wenlong <houwenlong.hwl@antgroup.com> wrote:
> >
> > On Thu, Sep 08, 2022 at 01:40:16AM +0800, David Matlack wrote:
> > > On Wed, Aug 24, 2022 at 05:29:23PM +0800, Hou Wenlong wrote:
> > > > Only SP with PG_LEVLE_4K level could be unsync, so the size of gfn range
> > > > must be 1.
> > > >
> > > > Signed-off-by: Hou Wenlong <houwenlong.hwl@antgroup.com>
> > > > ---
> > > >  arch/x86/kvm/mmu/paging_tmpl.h | 3 ++-
> > > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/arch/x86/kvm/mmu/paging_tmpl.h b/arch/x86/kvm/mmu/paging_tmpl.h
> > > > index 04149c704d5b..486a3163b1e4 100644
> > > > --- a/arch/x86/kvm/mmu/paging_tmpl.h
> > > > +++ b/arch/x86/kvm/mmu/paging_tmpl.h
> > > > @@ -937,7 +937,8 @@ static void FNAME(invlpg)(struct kvm_vcpu *vcpu, gva_t gva, hpa_t root_hpa)
> > > >
> > > >                     mmu_page_zap_pte(vcpu->kvm, sp, sptep, NULL);
> > > >                     if (is_shadow_present_pte(old_spte))
> > > > -                           kvm_flush_remote_tlbs_sptep(vcpu->kvm, sptep);
> > > > +                           kvm_flush_remote_tlbs_gfn(vcpu->kvm,
> > > > +                                   kvm_mmu_page_get_gfn(sp, sptep - sp->spt), 1);
> > >
> > > The third argument to kvm_flush_remote_tlbs_gfn() is the level, not the
> > > number of pages. But that aside, I don't understand why this patch is
> > > necessary. kvm_flush_remote_tlbs_sptep() should already do the right
> > > thing.
> > >
> > Since only SP with PG_LEVEL_4K level could be unsync, so the level must
> > be PG_LEVEL_4K, then sp->role.level access could be dropped. However,
> > I'm not sure whether it is useful. I can drop it if it is useless.
> 
> Ah, I see. I would be surprised if avoiding the read of sp->role.level
> has any noticeable impact on VM performance so I vote to drop this patch.

Agreed, the cost of the sp->role.level lookup is negligible in this case, and IMO
using kvm_flush_remote_tlbs_sptep() is more intuitive.

If kvm_flush_remote_tlbs_sptep() didn't exist and this was open coding the use of
kvm_flush_remote_tlbs_with_address() + KVM_PAGES_PER_HPAGE(), then I would be in
favor of hardcoding '1', because at that point the use of KVM_PAGES_PER_HPAGE() is
misleading in its own way.

      reply	other threads:[~2022-09-16 19:33 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-24  9:29 [PATCH v2 0/6] KVM: x86/mmu: Fix wrong usages of range-based tlb flushing Hou Wenlong
2022-08-24  9:29 ` [PATCH v2 1/6] KVM: x86/mmu: Fix wrong gfn range of tlb flushing in validate_direct_spte() Hou Wenlong
2022-09-07 17:43   ` David Matlack
2022-09-13 12:07     ` Hou Wenlong
2022-09-15 11:47       ` Liam Ni
2022-09-16  2:49         ` Hou Wenlong
2022-09-20 18:08         ` David Matlack
2022-09-18 13:11   ` Robert Hoo
2022-09-20 18:32     ` David Matlack
2022-09-20 18:44       ` David Matlack
2022-09-27  2:54         ` Robert Hoo
2022-09-27 16:44           ` Sean Christopherson
2022-08-24  9:29 ` [PATCH v2 2/6] KVM: x86/mmu: Fix wrong gfn range of tlb flushing in kvm_set_pte_rmapp() Hou Wenlong
2022-09-07 17:50   ` David Matlack
2022-08-24  9:29 ` [PATCH v2 3/6] KVM: x86/mmu: Reduce gfn range of tlb flushing in tdp_mmu_map_handle_target_level() Hou Wenlong
2022-09-07 17:58   ` David Matlack
2022-08-24  9:29 ` [PATCH v2 4/6] KVM: x86/mmu: Fix wrong start gfn of tlb flushing with range Hou Wenlong
2022-09-07 18:25   ` David Matlack
2022-09-13 12:50     ` Hou Wenlong
2022-08-24  9:29 ` [PATCH v2 5/6] KVM: x86/mmu: Introduce helper function to do range-based flushing for given page Hou Wenlong
2022-08-24  9:29 ` [PATCH v2 6/6] KVM: x86/mmu: Use 1 as the size of gfn range for tlb flushing in FNAME(invlpg)() Hou Wenlong
2022-09-07 17:40   ` David Matlack
2022-09-13 12:58     ` Hou Wenlong
2022-09-13 13:57       ` David Matlack
2022-09-16 19:33         ` Sean Christopherson [this message]

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=YyTPjSl8lNPWWSlL@google.com \
    --to=seanjc@google.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=dmatlack@google.com \
    --cc=houwenlong.hwl@antgroup.com \
    --cc=hpa@zytor.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /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.