• Sean Christopherson's avatar
    KVM: Explicitly use GFP_KERNEL_ACCOUNT for 'struct kvm_vcpu' allocations · 85f47930
    Sean Christopherson authored
    Use GFP_KERNEL_ACCOUNT when allocating vCPUs to make it more obvious that
    that the allocations are accounted, to make it easier to audit KVM's
    allocations in the future, and to be consistent with other cache usage in
    KVM.
    
    When using SLAB/SLUB, this is a nop as the cache itself is created with
    SLAB_ACCOUNT.
    
    When using SLOB, there are caveats within caveats.  SLOB doesn't honor
    SLAB_ACCOUNT, so passing GFP_KERNEL_ACCOUNT will result in vCPU
    allocations now being accounted.   But, even that depends on internal
    SLOB details as SLOB will only go to the page allocator when its cache is
    depleted.  That just happens to be extremely likely for vCPUs because the
    size of kvm_vcpu is larger than the a page for almost all combinations of
    architecture and page size.  Whether or not the SLOB behavior is by
    design is unknown; it's just as likely that no SLOB users care about
    accounding and so no one has bothered to implemented support in SLOB.
    Regardless, accounting vCPU allocations will not break SLOB+KVM+cgroup
    users, if any exist.
    Reviewed-by: default avatarWanpeng Li <kernellwp@gmail.com>
    Acked-by: default avatarDavid Rientjes <rientjes@google.com>
    Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
    Message-Id: <20210406190740.4055679-1-seanjc@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    85f47930
kvm_main.c 123 KB