lkml.org 
[lkml]   [2017]   [Dec]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 4.14 108/159] kvm, mm: account kvm related kmem slabs to kmemcg
    On Fri 22-12-17 09:46:33, Greg KH wrote:
    > 4.14-stable review patch. If anyone has any objections, please let me know.
    >
    > ------------------
    >
    > From: Shakeel Butt <shakeelb@google.com>
    >
    >
    > [ Upstream commit 46bea48ac241fe0b413805952dda74dd0c09ba8b ]
    >
    > The kvm slabs can consume a significant amount of system memory
    > and indeed in our production environment we have observed that
    > a lot of machines are spending significant amount of memory that
    > can not be left as system memory overhead. Also the allocations
    > from these slabs can be triggered directly by user space applications
    > which has access to kvm and thus a buggy application can leak
    > such memory. So, these caches should be accounted to kmemcg.
    >
    > Signed-off-by: Shakeel Butt <shakeelb@google.com>
    > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    > Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    > Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    The patch is not marked for stable, neither it fixes an existing bug.
    It is a nice to have thing for sure but I am wondering how this got
    through stable-filter.

    > ---
    > arch/x86/kvm/mmu.c | 4 ++--
    > virt/kvm/kvm_main.c | 2 +-
    > 2 files changed, 3 insertions(+), 3 deletions(-)
    >
    > --- a/arch/x86/kvm/mmu.c
    > +++ b/arch/x86/kvm/mmu.c
    > @@ -5476,13 +5476,13 @@ int kvm_mmu_module_init(void)
    >
    > pte_list_desc_cache = kmem_cache_create("pte_list_desc",
    > sizeof(struct pte_list_desc),
    > - 0, 0, NULL);
    > + 0, SLAB_ACCOUNT, NULL);
    > if (!pte_list_desc_cache)
    > goto nomem;
    >
    > mmu_page_header_cache = kmem_cache_create("kvm_mmu_page_header",
    > sizeof(struct kvm_mmu_page),
    > - 0, 0, NULL);
    > + 0, SLAB_ACCOUNT, NULL);
    > if (!mmu_page_header_cache)
    > goto nomem;
    >
    > --- a/virt/kvm/kvm_main.c
    > +++ b/virt/kvm/kvm_main.c
    > @@ -4018,7 +4018,7 @@ int kvm_init(void *opaque, unsigned vcpu
    > if (!vcpu_align)
    > vcpu_align = __alignof__(struct kvm_vcpu);
    > kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
    > - 0, NULL);
    > + SLAB_ACCOUNT, NULL);
    > if (!kvm_vcpu_cache) {
    > r = -ENOMEM;
    > goto out_free_3;
    >

    --
    Michal Hocko
    SUSE Labs

    \
     
     \ /
      Last update: 2017-12-22 10:37    [W:4.019 / U:0.116 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site