On Wed, 31 Mar 2021 at 10:32, Sean Christopherson <seanjc@xxxxxxxxxx> wrote: > > Use GFP_KERNEL_ACCOUNT for the vCPU allocations, the vCPUs are very much > tied to a single task/VM. For x86, the allocations were accounted up > until the allocation code was moved to common KVM. For all other > architectures, vCPU allocations were never previously accounted, but only > because most architectures lack accounting in general (for KVM). > > Fixes: e529ef66e6b5 ("KVM: Move vcpu alloc and init invocation to common code") > Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> > --- > virt/kvm/kvm_main.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index 383df23514b9..3884e9f30251 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -3182,7 +3182,7 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, u32 id) > if (r) > goto vcpu_decrement; > > - vcpu = kmem_cache_zalloc(kvm_vcpu_cache, GFP_KERNEL); > + vcpu = kmem_cache_zalloc(kvm_vcpu_cache, GFP_KERNEL_ACCOUNT); kvm_vcpu_cache is created with SLAB_ACCOUNT flag in kvm_init(), this flag will guarantee further slab alloc will be charged to memcg. Please refer to memcg_slab_pre_alloc_hook(). So the patch is unnecessary. Wanpeng