Re: [PATCH v2 2/6] KVM: Documentation: Update the field name gfns and its description in kvm_mmu_page

From: Sean Christopherson
Date: Mon Jul 31 2023 - 14:24:30 EST


On Mon, Jul 31, 2023, Mingwei Zhang wrote:
> On Mon, Jun 26, 2023, Randy Dunlap wrote:
> > Hi--
> >
> > On 6/26/23 11:20, Mingwei Zhang wrote:
> > > Update the field 'gfns' in kvm_mmu_page to 'shadowed_translation' to be
> > > consistent with the code. Also update the corresponding 'gfns' in the
> > > comments. The more detailed description of 'shadowed_translation' is
> > > already inlined in the data structure definition, so no need to duplicate
> > > the text but simply just update the names.
> > >
> > > Signed-off-by: Mingwei Zhang <mizhang@xxxxxxxxxx>
> > > Reviewed-by: Kai Huang <kai.huang@xxxxxxxxx>
> > > ---
> > > Documentation/virt/kvm/x86/mmu.rst | 9 +++++----
> > > 1 file changed, 5 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/Documentation/virt/kvm/x86/mmu.rst b/Documentation/virt/kvm/x86/mmu.rst
> > > index 561efa8ec7d7..4c9044b4dc6c 100644
> > > --- a/Documentation/virt/kvm/x86/mmu.rst
> > > +++ b/Documentation/virt/kvm/x86/mmu.rst
> > > @@ -221,11 +221,12 @@ Shadow pages contain the following information:
> > > at __pa(sp2->spt). sp2 will point back at sp1 through parent_pte.
> > > The spt array forms a DAG structure with the shadow page as a node, and
> > > guest pages as leaves.
> > > - gfns:
> > > - An array of 512 guest frame numbers, one for each present pte. Used to
> > > - perform a reverse map from a pte to a gfn. When role.direct is set, any
> > > + shadowed_translation:
> > > + An array of 512 shadow translation entries, one for each present pte. Used
> > > + to perform a reverse map from a pte to a gfn. When role.direct is set, any
> > > element of this array can be calculated from the gfn field when used, in
> > > - this case, the array of gfns is not allocated. See role.direct and gfn.
> > > + this case, the array of shadowed_translation is not allocated. See
> >
> > I cannot parse the before version nor the after version of this sentence (new version):
> >
> > When role.direct is set, any
> > element of this array can be calculated from the gfn field when used, in
> > this case, the array of shadowed_translation is not allocated.
> >
> >
>
> Sorry for the late reply. Why is it not parsed? It just means that when
> role.direct is set, do not use gfns. The gfn can be calculated from the
> base address + offset. The base address here is the 'gfn' field in
> kvm_mmu_page.

It's a bit of a run-on sentence with confusing pronoun usage. How about this?

When role.direct is set, the shadow_translation array is not allocated as the
per-SPTE gfn is simply an offset from the base gfn, and KVM doesn't track
access permissions for direct shadow pages.