lkml.org 
[lkml]   [2014]   [Apr]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH RFC -mm v2 0/3] kmemcg: simplify work-flow (was "memcg-vs-slab cleanup")
    On 04/18/2014 12:04 PM, Vladimir Davydov wrote:
    > Hi Michal, Johannes,
    >
    > This patch-set is a part of preparations for kmemcg re-parenting. It
    > targets at simplifying kmemcg work-flows and synchronization.
    >
    > First, it removes async per memcg cache destruction (see patches 1, 2).
    > Now caches are only destroyed on memcg offline. That means the caches
    > that are not empty on memcg offline will be leaked. However, they are
    > already leaked, because memcg_cache_params::nr_pages normally never
    > drops to 0 so the destruction work is never scheduled except
    > kmem_cache_shrink is called explicitly. In the future I'm planning
    > reaping such dead caches on vmpressure or periodically.
    >
    > Second, it substitutes per memcg slab_caches_mutex's with the global
    > memcg_slab_mutex, which should be taken during the whole per memcg cache
    > creation/destruction path before the slab_mutex (see patch 3). This
    > greatly simplifies synchronization among various per memcg cache
    > creation/destruction paths.

    v1 can be found here: https://lkml.org/lkml/2014/4/9/298

    Changes in v2:
    - substitute per memcg slab_caches_mutex's with the global
    memcg_slab_mutex and re-split the set.

    >
    > I really need your help, because I'm far not sure if what I'm doing here
    > is right. So I would appreciate if you could look through the patches
    > and share your thoughts about the design changes they introduce.
    >
    > Thanks,
    >
    > Vladimir Davydov (3):
    > memcg, slab: do not schedule cache destruction when last page goes
    > away
    > memcg, slab: merge memcg_{bind,release}_pages to
    > memcg_{un}charge_slab
    > memcg, slab: simplify synchronization scheme
    >
    > include/linux/memcontrol.h | 15 +--
    > include/linux/slab.h | 8 +-
    > mm/memcontrol.c | 231 +++++++++++++++-----------------------------
    > mm/slab.c | 2 -
    > mm/slab.h | 28 +-----
    > mm/slab_common.c | 22 ++---
    > mm/slub.c | 2 -
    > 7 files changed, 92 insertions(+), 216 deletions(-)
    >


    \
     
     \ /
      Last update: 2014-04-18 10:41    [W:2.378 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site