• Y
    alios: mm: memcontrol: support background async page reclaim · 6b2ef082
    Yang Shi 提交于
    Currently when memory usage exceeds memory cgroup limit, memory cgroup
    just can do sync direct reclaim.  This may incur unexpected stall on
    some applications which are sensitive to latency.  Introduce background
    async page reclaim mechanism, like what kswapd does.
    
    Define memcg memory usage water mark by introducing wmark_ratio interface,
    which is from 0 to 100 and represents percentage of max limit.  The
    wmark_high is calculated by (max * wmark_ratio / 100), the wmark_low is
    (wmark_high - wmark_high >> 8), which is an empirical value.  If wmark_ratio
    is 0, it means water mark is disabled, both wmark_low and wmark_high is max,
    which is the default value.
    
    If wmark_ratio is setup, when charging page, if usage is greater than
    wmark_high, which means the available memory of memcg is low, a work
    would be scheduled to do background page reclaim until memory usage is
    reduced to wmark_low if possible.
    
    Define a dedicated unbound workqueue for scheduling water mark reclaim
    works.
    Reviewed-by: NGavin Shan <shan.gavin@linux.alibaba.com>
    Reviewed-by: NXunlei Pang <xlpang@linux.alibaba.com>
    Signed-off-by: NYang Shi <yang.shi@linux.alibaba.com>
    6b2ef082
memcontrol.h 32.3 KB