From: Mingwei Zhang <mizhang@google.com>
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
kvm@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, Kai Huang <kai.huang@intel.com>,
Jim Mattson <jmattson@google.com>,
David Matlack <dmatlack@google.com>,
Ben Gardon <bgardon@google.com>, Xu Yilun <yilun.xu@intel.com>,
Zhi Wang <zhi.wang.linux@gmail.com>,
Randy Dunlap <rdunlap@infradead.org>
Subject: Re: [PATCH v3 4/6] KVM: Documentation: Add the missing description for tdp_mmu_root_count into kvm_mmu_page
Date: Tue, 12 Sep 2023 18:24:01 +0000 [thread overview]
Message-ID: <ZQCswf8EWAGy8QZI@google.com> (raw)
In-Reply-To: <ZN1R31uo4FGQfKrQ@google.com>
On Wed, Aug 16, 2023, Sean Christopherson wrote:
> On Tue, Aug 01, 2023, Mingwei Zhang wrote:
> > Add the description of tdp_mmu_root_count into kvm_mmu_page description and
> > combine it with the description of root_count. tdp_mmu_root_count is an
> > atomic counter used only in TDP MMU. Update the doc.
> >
> > Signed-off-by: Mingwei Zhang <mizhang@google.com>
> > Reviewed-by: Kai Huang <kai.huang@intel.com>
> > ---
> > Documentation/virt/kvm/x86/mmu.rst | 12 ++++++++----
> > 1 file changed, 8 insertions(+), 4 deletions(-)
> >
> > diff --git a/Documentation/virt/kvm/x86/mmu.rst b/Documentation/virt/kvm/x86/mmu.rst
> > index 17d90974204e..40daf8beb9b1 100644
> > --- a/Documentation/virt/kvm/x86/mmu.rst
> > +++ b/Documentation/virt/kvm/x86/mmu.rst
> > @@ -229,10 +229,14 @@ Shadow pages contain the following information:
> > can be calculated from the gfn field when used. In addition, when
> > role.direct is set, KVM does not track access permission for each of the
> > gfn. See role.direct and gfn.
> > - root_count:
> > - A counter keeping track of how many hardware registers (guest cr3 or
> > - pdptrs) are now pointing at the page. While this counter is nonzero, the
> > - page cannot be destroyed. See role.invalid.
> > + root_count / tdp_mmu_root_count:
> > + root_count is a reference counter for root shadow pages in Shadow MMU.
> > + vCPUs elevate the refcount when getting a shadow page that will be used as
> > + a root page, i.e. page that will be loaded into hardware directly (CR3,
> > + PDPTRs, nCR3 EPTP). Root pages cannot be destroyed while their refcount is
> > + non-zero. See role.invalid. tdp_mmu_root_count is similar but exclusively
> > + used in TDP MMU as an atomic refcount. When the value is non-zero, it
> > + allows vCPUs acquire references while holding mmu_lock for read.
>
> That last sentence is wrong. *vCPUs* can't acquire references while holding
> mmu_lock for read. And actually, they don't ever put references while holding
> for read either. vCPUs *must* hold mmu_lock for write to obtain a new root,
> Not putting references while holding mmu_lock for read is mostly an implementation
> quirk.
>
> Maybe replace it with this?
>
> tdp_mmu_root_count is similar but exclusively used in the TDP MMU as an
> atomic refcount (select TDP MMU flows walk all roots while holding mmu_lock
> for read, e.g. when clearing dirty bits).
hmm, I think all the content within the bracket is details and we should
not mention them at all. In fact, when I see the implementation, the
last refcount of tdp_mmu_root_count is treated differently. Those
details should be instead mentioned in code or comments instead of
documentation as they may evolve much faster.
So, I will remove the last sentence.
next prev parent reply other threads:[~2023-09-12 18:24 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-01 0:21 [PATCH v3 0/6] Update document description for kvm_mmu_page and kvm_mmu_page_role Mingwei Zhang
2023-08-01 0:21 ` [PATCH v3 1/6] KVM: Documentation: Add the missing description for guest_mode in kvm_mmu_page_role Mingwei Zhang
2023-08-01 0:21 ` [PATCH v3 2/6] KVM: Documentation: Update the field name gfns and its description in kvm_mmu_page Mingwei Zhang
2023-08-01 0:21 ` [PATCH v3 3/6] KVM: Documentation: Add the missing description for ptep " Mingwei Zhang
2023-08-01 0:21 ` [PATCH v3 4/6] KVM: Documentation: Add the missing description for tdp_mmu_root_count into kvm_mmu_page Mingwei Zhang
2023-08-16 22:46 ` Sean Christopherson
2023-09-12 18:24 ` Mingwei Zhang [this message]
2023-08-01 0:21 ` [PATCH v3 5/6] KVM: Documentation: Add the missing description for mmu_valid_gen " Mingwei Zhang
2023-08-16 22:40 ` Sean Christopherson
2023-09-12 18:37 ` Mingwei Zhang
2023-08-01 0:21 ` [PATCH v3 6/6] KVM: Documentation: Add the missing description for tdp_mmu_page " Mingwei Zhang
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=ZQCswf8EWAGy8QZI@google.com \
--to=mizhang@google.com \
--cc=bgardon@google.com \
--cc=dmatlack@google.com \
--cc=jmattson@google.com \
--cc=kai.huang@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=rdunlap@infradead.org \
--cc=seanjc@google.com \
--cc=yilun.xu@intel.com \
--cc=zhi.wang.linux@gmail.com \
/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.