• Greg Thelen's avatar
    cgroups: alloc_css_id() increments hierarchy depth · 94b3dd0f
    Greg Thelen authored
    Child groups should have a greater depth than their parents.  Prior to
    this change, the parent would incorrectly report zero memory usage for
    child cgroups when use_hierarchy is enabled.
    
    test script:
      mount -t cgroup none /cgroups -o memory
      cd /cgroups
      mkdir cg1
    
      echo 1 > cg1/memory.use_hierarchy
      mkdir cg1/cg11
    
      echo $$ > cg1/cg11/tasks
      dd if=/dev/zero of=/tmp/foo bs=1M count=1
    
      echo
      echo CHILD
      grep cache cg1/cg11/memory.stat
    
      echo
      echo PARENT
      grep cache cg1/memory.stat
    
      echo $$ > tasks
      rmdir cg1/cg11 cg1
      cd /
      umount /cgroups
    
    Using fae9c791, a recent patch that changed alloc_css_id() depth computation,
    the parent incorrectly reports zero usage:
      root@ubuntu:~# ./test
      1+0 records in
      1+0 records out
      1048576 bytes (1.0 MB) copied, 0.0151844 s, 69.1 MB/s
    
      CHILD
      cache 1048576
      total_cache 1048576
    
      PARENT
      cache 0
      total_cache 0
    
    With this patch, the parent correctly includes child usage:
      root@ubuntu:~# ./test
      1+0 records in
      1+0 records out
      1048576 bytes (1.0 MB) copied, 0.0136827 s, 76.6 MB/s
    
      CHILD
      cache 1052672
      total_cache 1052672
    
      PARENT
      cache 0
      total_cache 1052672
    Signed-off-by: default avatarGreg Thelen <gthelen@google.com>
    Acked-by: default avatarPaul Menage <menage@google.com>
    Acked-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Acked-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
    Cc: <stable@kernel.org>		[2.6.34.x]
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    94b3dd0f
cgroup.c 126 KB