Skip to content
  • Shakeel Butt's avatar
    epoll: account epitem and eppoll_entry to kmemcg · 2ae928a9
    Shakeel Butt authored
    A userspace application can directly trigger the allocations from
    eventpoll_epi and eventpoll_pwq slabs.  A buggy or malicious application
    can consume a significant amount of system memory by triggering such
    allocations.  Indeed we have seen in production where a buggy
    application was leaking the epoll references and causing a burst of
    eventpoll_epi and eventpoll_pwq slab allocations.  This patch opt-in the
    charging of eventpoll_epi and eventpoll_pwq slabs.
    
    There is a per-user limit (~4% of total memory if no highmem) on these
    caches.  I think it is too generous particularly in the scenario where
    jobs of multiple users are running on the system and the administrator
    is reducing cost by overcomitting the memory.  This is unaccounted
    kernel memory and will not be considered by the oom-killer.  I think by
    accounting it to kmemcg, for systems with kmem accounting enabled, we
    can provide better isolation between jobs of different users.
    
    Link: http://lkml.kernel.org/r/20171003021519.23907-1-shakeelb@google.com
    
    
    Signed-off-by: default avatarShakeel Butt <shakeelb@google.com>
    Acked-by: default avatarMichal Hocko <mhocko@suse.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Greg Thelen <gthelen@google.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    2ae928a9