• Y
    memcg: count the soft_limit reclaim in global background reclaim · 0ae5e89c
    Ying Han 提交于
    The global kswapd scans per-zone LRU and reclaims pages regardless of the
    cgroup. It breaks memory isolation since one cgroup can end up reclaiming
    pages from another cgroup. Instead we should rely on memcg-aware target
    reclaim including per-memcg kswapd and soft_limit hierarchical reclaim under
    memory pressure.
    
    In the global background reclaim, we do soft reclaim before scanning the
    per-zone LRU. However, the return value is ignored. This patch is the first
    step to skip shrink_zone() if soft_limit reclaim does enough work.
    
    This is part of the effort which tries to reduce reclaiming pages in global
    LRU in memcg. The per-memcg background reclaim patchset further enhances the
    per-cgroup targetting reclaim, which I should have V4 posted shortly.
    
    Try running multiple memory intensive workloads within seperate memcgs. Watch
    the counters of soft_steal in memory.stat.
    
      $ cat /dev/cgroup/A/memory.stat | grep 'soft'
      soft_steal 240000
      soft_scan 240000
      total_soft_steal 240000
      total_soft_scan 240000
    
    This patch:
    
    In the global background reclaim, we do soft reclaim before scanning the
    per-zone LRU.  However, the return value is ignored.
    
    We would like to skip shrink_zone() if soft_limit reclaim does enough
    work.  Also, we need to make the memory pressure balanced across per-memcg
    zones, like the logic vm-core.  This patch is the first step where we
    start with counting the nr_scanned and nr_reclaimed from soft_limit
    reclaim into the global scan_control.
    Signed-off-by: NYing Han <yinghan@google.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Minchan Kim <minchan.kim@gmail.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Balbir Singh <balbir@in.ibm.com>
    Acked-by: NDaisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    0ae5e89c
vmscan.c 93.4 KB