• Kirill A. Shutemov's avatar
    memcg: implement memory thresholds · 2e72b634
    Kirill A. Shutemov authored
    It allows to register multiple memory and memsw thresholds and gets
    notifications when it crosses.
    
    To register a threshold application need:
    - create an eventfd;
    - open memory.usage_in_bytes or memory.memsw.usage_in_bytes;
    - write string like "<event_fd> <memory.usage_in_bytes> <threshold>" to
      cgroup.event_control.
    
    Application will be notified through eventfd when memory usage crosses
    threshold in any direction.
    
    It's applicable for root and non-root cgroup.
    
    It uses stats to track memory usage, simmilar to soft limits. It checks
    if we need to send event to userspace on every 100 page in/out. I guess
    it's good compromise between performance and accuracy of thresholds.
    
    [akpm@linux-foundation.org: coding-style fixes]
    [nishimura@mxp.nes.nec.co.jp: fix documentation merge issue]
    Signed-off-by: default avatarKirill A. Shutemov <kirill@shutemov.name>
    Cc: Li Zefan <lizf@cn.fujitsu.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
    Cc: Pavel Emelyanov <xemul@openvz.org>
    Cc: Dan Malek <dan@embeddedalley.com>
    Cc: Vladislav Buzov <vbuzov@embeddedalley.com>
    Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
    Cc: Alexander Shishkin <virtuoso@slind.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    2e72b634
memcontrol.c 110 KB