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

From: Justin He
Date: Fri Sep 03 2021 - 05:19:20 EST


Hi Marc

> -----Original Message-----
> From: Marc Zyngier <maz@xxxxxxxxxx>
> Sent: Friday, September 3, 2021 2:04 AM
> To: Justin He <Justin.He@xxxxxxx>
> Cc: James Morse <James.Morse@xxxxxxx>; Alexandru Elisei
> <Alexandru.Elisei@xxxxxxx>; Suzuki Poulose <Suzuki.Poulose@xxxxxxx>;
> Catalin Marinas <Catalin.Marinas@xxxxxxx>; Will Deacon <will@xxxxxxxxxx>;
> Liu Shixin <liushixin2@xxxxxxxxxx>; Eric Auger <eric.auger@xxxxxxxxxx>;
> Kees Cook <keescook@xxxxxxxxxxxx>; Nick Desaulniers
> <ndesaulniers@xxxxxxxxxx>; Shenming Lu <lushenming@xxxxxxxxxx>; Sami
> Tolvanen <samitolvanen@xxxxxxxxxx>; Lorenzo Pieralisi
> <Lorenzo.Pieralisi@xxxxxxx>; Xiaoming Ni <nixiaoming@xxxxxxxxxx>; Zenghui
> Yu <yuzenghui@xxxxxxxxxx>; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> kvmarm@xxxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH 1/2] KVM: arm64: vgic: Add memcg accounting to vgic
> allocations
>
> Jia,
>
> Once again: please add a cover letter when you have a patch
> series. It isn't rocket science, and Git will do it for you.
>

Okay
> On Thu, 02 Sep 2021 01:28:00 +0100,
> 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 vgic 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 case in vgic_set_kvm_info() since this allocation is
> > global, not in VM scope.
> >
> > Signed-off-by: Jia He <justin.he@xxxxxxx>
> > ---
> > arch/arm64/kvm/vgic/vgic-debug.c | 2 +-
> > arch/arm64/kvm/vgic/vgic-init.c | 2 +-
> > arch/arm64/kvm/vgic/vgic-irqfd.c | 2 +-
> > arch/arm64/kvm/vgic/vgic-its.c | 14 +++++++-------
> > arch/arm64/kvm/vgic/vgic-mmio-v3.c | 2 +-
> > arch/arm64/kvm/vgic/vgic-v4.c | 2 +-
> > 6 files changed, 12 insertions(+), 12 deletions(-)
> >
> > diff --git a/arch/arm64/kvm/vgic/vgic-debug.c b/arch/arm64/kvm/vgic/vgic-
> debug.c
> > index f38c40a76251..e6a01f210df9 100644
> > --- a/arch/arm64/kvm/vgic/vgic-debug.c
> > +++ b/arch/arm64/kvm/vgic/vgic-debug.c
> > @@ -92,7 +92,7 @@ static void *vgic_debug_start(struct seq_file *s,
> loff_t *pos)
> > goto out;
> > }
> >
> > - iter = kmalloc(sizeof(*iter), GFP_KERNEL);
> > + iter = kmalloc(sizeof(*iter), GFP_KERNEL_ACCOUNT);
>
> This really isn't an allocation made in the context of a VM. I don't
> think this hunk belongs here.

Yes, indeed


--
Cheers,
Justin (Jia He)