Re: [PATCH v2 2/2] KVM: arm64: Add memcg accounting to KVM allocations

From: Oliver Upton
Date: Mon Sep 13 2021 - 08:21:30 EST


Justin,

On Thu, Sep 9, 2021 at 8:57 AM Justin He <Justin.He@xxxxxxx> wrote:
>
> Hi Oliver, thanks for the review, please my comments below:
>
> > -----Original Message-----
> > From: Oliver Upton <oupton@xxxxxxxxxx>
> > Sent: Wednesday, September 8, 2021 6:29 AM
> > To: Justin He <Justin.He@xxxxxxx>
> > Cc: Marc Zyngier <maz@xxxxxxxxxx>; James Morse <James.Morse@xxxxxxx>;
> > Alexandru Elisei <Alexandru.Elisei@xxxxxxx>; Suzuki Poulose
> > <Suzuki.Poulose@xxxxxxx>; Xiaoming Ni <nixiaoming@xxxxxxxxxx>; Lorenzo
> > Pieralisi <Lorenzo.Pieralisi@xxxxxxx>; Kees Cook <keescook@xxxxxxxxxxxx>;
> > Catalin Marinas <Catalin.Marinas@xxxxxxx>; Nick Desaulniers
> > <ndesaulniers@xxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx; Liu Shixin
> > <liushixin2@xxxxxxxxxx>; Sami Tolvanen <samitolvanen@xxxxxxxxxx>; Will
> > Deacon <will@xxxxxxxxxx>; kvmarm@xxxxxxxxxxxxxxxxxxxxx; linux-arm-
> > kernel@xxxxxxxxxxxxxxxxxxx
> > Subject: Re: [PATCH v2 2/2] KVM: arm64: Add memcg accounting to KVM
> > allocations
> >
> > Hi Jia,
> >
> > On Tue, Sep 7, 2021 at 7:33 AM Jia He <justin.he@xxxxxxx> wrote:
> > >
> > > Inspired by commit 254272ce6505 ("kvm: x86: Add memcg accounting to KVM
> > > allocations"), it would be better to make arm64 KVM consistent with
> > > common kvm codes.
> > >
> > > The memory allocations of VM scope should be charged into VM process
> > > cgroup, hence change GFP_KERNEL to GFP_KERNEL_ACCOUNT.
> > >
> > > There remain a few cases since these allocations are global, not in VM
> > > scope.
> >
> > I believe there are more memory allocations that could be switched to
> > GFP_KERNEL_ACCOUNT. For non-pKVM kernels, we probably should charge
> > all stage-2 paging structure allocations to the VM process. Your patch
> > appears to only change the allocation of the kvm_pgtable structure,
> > but not descendent paging structures.
> >
> Do you mean kvm_hyp_zalloc_page() here?
> Seems kvm_hyp_zalloc_page() is in both global and VM scopes.

Doh! kvm_hyp_zalloc_page() is only for the hyp's page tables, hence I
believe your patch is correct as it stands. As such:

Reviewed-by: Oliver Upton <oupton@xxxxxxxxxx>