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

Justin He Justin.He at arm.com
Fri Sep 3 02:21:48 PDT 2021



> -----Original Message-----
> From: Marc Zyngier <maz at kernel.org>
> Sent: Friday, September 3, 2021 2:12 AM
> To: Justin He <Justin.He at arm.com>
> Cc: James Morse <James.Morse at arm.com>; Alexandru Elisei
> <Alexandru.Elisei at arm.com>; Suzuki Poulose <Suzuki.Poulose at arm.com>;
> Catalin Marinas <Catalin.Marinas at arm.com>; Will Deacon <will at kernel.org>;
> Liu Shixin <liushixin2 at huawei.com>; Eric Auger <eric.auger at redhat.com>;
> Kees Cook <keescook at chromium.org>; Nick Desaulniers
> <ndesaulniers at google.com>; Shenming Lu <lushenming at huawei.com>; Sami
> Tolvanen <samitolvanen at google.com>; Lorenzo Pieralisi
> <Lorenzo.Pieralisi at arm.com>; Xiaoming Ni <nixiaoming at huawei.com>; Zenghui
> Yu <yuzenghui at huawei.com>; linux-arm-kernel at lists.infradead.org;
> kvmarm at lists.cs.columbia.edu; linux-kernel at vger.kernel.org
> Subject: Re: [PATCH 2/2] KVM: arm64: Add memcg accounting to KVM
> allocations
> 
> On Thu, 02 Sep 2021 01:28:01 +0100,
> Jia He <justin.he at arm.com> 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 remained a few cases since these allocations are global, not in VM
> > scope.
> >
> > Signed-off-by: Jia He <justin.he at arm.com>
> > ---
> >  arch/arm64/kvm/arm.c      | 6 ++++--
> >  arch/arm64/kvm/mmu.c      | 2 +-
> >  arch/arm64/kvm/pmu-emul.c | 2 +-
> >  arch/arm64/kvm/reset.c    | 2 +-
> >  4 files changed, 7 insertions(+), 5 deletions(-)
> >
> > diff --git a/arch/arm64/kvm/arm.c b/arch/arm64/kvm/arm.c
> > index e9a2b8f27792..9d6f5bcaddef 100644
> > --- a/arch/arm64/kvm/arm.c
> > +++ b/arch/arm64/kvm/arm.c
> > @@ -289,10 +289,12 @@ long kvm_arch_dev_ioctl(struct file *filp,
> >
> >  struct kvm *kvm_arch_alloc_vm(void)
> >  {
> > +	unsigned long sz = sizeof(struct kvm);
> 
> If you are going to introduce an extra variable, please use the
> correct type (size_t).

Okay
> 
> > +
> >  	if (!has_vhe())
> > -		return kzalloc(sizeof(struct kvm), GFP_KERNEL);
> > +		return kzalloc(sz, GFP_KERNEL | GFP_KERNEL_ACCOUNT);
> 
> Why both GFP_KERNEL and GFP_KERNEL_ACCOUNT?
Urgh, sorry for the mistake.

--
Cheers,
Justin (Jia He)





More information about the linux-arm-kernel mailing list