Re: [PATCH v5 2/4] KVM: mmu: add a helper to account memory used by KVM MMU.

From: Yosry Ahmed
Date: Mon Jun 27 2022 - 12:29:20 EST


On Mon, Jun 27, 2022 at 9:20 AM Sean Christopherson <seanjc@xxxxxxxxxx> wrote:
>
> On Mon, Jun 06, 2022, Yosry Ahmed wrote:
> > Add a helper to account pages used by KVM for page tables in secondary
> > pagetable stats. This function will be used by subsequent patches in
> > different archs.
> >
> > Signed-off-by: Yosry Ahmed <yosryahmed@xxxxxxxxxx>
> > ---
> > include/linux/kvm_host.h | 9 +++++++++
> > 1 file changed, 9 insertions(+)
> >
> > diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
> > index 883e86ec8e8c4..645585f3a4bed 100644
> > --- a/include/linux/kvm_host.h
> > +++ b/include/linux/kvm_host.h
> > @@ -2246,6 +2246,15 @@ static inline void kvm_handle_signal_exit(struct kvm_vcpu *vcpu)
> > }
> > #endif /* CONFIG_KVM_XFER_TO_GUEST_WORK */
> >
> > +/*
> > + * If nr > 1, we assume virt is the address of the first page of a block of
>
> But what if @nr is -2, which is technically less than 1? :-)
>
> > + * pages that were allocated together (i.e accounted together).
>
> Don't document assumptions, document the rules. And avoid "we", pronouns are
> ambiguous, e.g. is "we" the author, or KVM, or something else entirely?
>
> /*
> * If more than one page is being (un)accounted, @virt must be the address of
> * the first page of a block of pages what were allocated together.
> */
>

Looks much better, I will use that in the next version.

Thanks!

>
> > + */
> > +static inline void kvm_account_pgtable_pages(void *virt, int nr)
> > +{
> > + mod_lruvec_page_state(virt_to_page(virt), NR_SECONDARY_PAGETABLE, nr);
> > +}
> > +
> > /*
> > * This defines how many reserved entries we want to keep before we
> > * kick the vcpu to the userspace to avoid dirty ring full. This
> > --
> > 2.36.1.255.ge46751e96f-goog
> >