[lkml]   [2016]   [Feb]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH v2 0/6] mm: workingset: make shadow node shrinker memcg aware

Workingset code was recently made memcg aware, but shadow node shrinker
is still global. As a result, one small cgroup can consume all memory
available for shadow nodes, possibly hurting other cgroups by reclaiming
their shadow nodes, even though reclaim distances stored in its shadow
nodes have no effect. To avoid this, we need to make shadow node
shrinker memcg aware.

The actual work is done in patch 6 of the series. Patches 1 and 2
prepare memcg/shrinker infrastructure for the change. Patch 3 is just a
collateral cleanup. Patch 4 makes radix_tree_node accounted, which is
necessary for making shadow node shrinker memcg aware. Patch 5 reduces
shadow nodes overhead in case workload mostly uses anonymous pages.

Changes in v2:
- Use (FILE_ACTIVE+FILE_INACTIVE)/2 instead of FILE_ACTIVE for maximal
refault distance (Johannes).


Vladimir Davydov (6):
mm: memcontrol: enable kmem accounting for all cgroups in the legacy
mm: vmscan: pass root_mem_cgroup instead of NULL to memcg aware
mm: memcontrol: zap memcg_kmem_online helper
radix-tree: account radix_tree_node to memory cgroup
mm: workingset: size shadow nodes lru basing on file cache size
mm: workingset: make shadow node shrinker memcg aware

include/linux/memcontrol.h | 20 +++++++++----------
lib/radix-tree.c | 16 +++++++++++++---
mm/memcontrol.c | 48 ++++++++--------------------------------------
mm/slab_common.c | 2 +-
mm/vmscan.c | 15 ++++++++++-----
mm/workingset.c | 10 ++++++++--
6 files changed, 50 insertions(+), 61 deletions(-)


 \ /
  Last update: 2016-02-09 15:21    [W:0.054 / U:78.356 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site