• Roman Gushchin's avatar
    kselftests: cgroup: add freezer controller self-tests · 5313bfe4
    Roman Gushchin authored
    This patch implements 9 tests for the freezer controller for
    cgroup v2:
    1) a simple test, which aims to freeze and unfreeze a cgroup with 100
    processes
    2) a more complicated tree test, which creates a hierarchy of cgroups,
    puts some processes in some cgroups, and tries to freeze and unfreeze
    different parts of the subtree
    3) a forkbomb test: the test aims to freeze a forkbomb running in a
    cgroup, kill all tasks in the cgroup and remove the cgroup without
    the unfreezing.
    4) rmdir test: the test creates two nested cgroups, freezes the parent
    one, checks that the child can be successfully removed, and a new
    child can be created
    5) migration tests: the test checks migration of a task between
    frozen cgroups: from a frozen to a running, from a running to a
    frozen, and from a frozen to a frozen.
    6) ptrace test: the test checks that it's possible to attach to
    a process in a frozen cgroup, get some information and detach, and
    the cgroup will remain frozen.
    7) stopped test: the test checks that it's possible to freeze a cgroup
    with a stopped task
    8) ptraced test: the test checks that it's possible to freeze a cgroup
    with a ptraced task
    9) vfork test: the test checks that it's possible to freeze a cgroup
    with a parent process waiting for the child process in vfork()
    
    Expected output:
      $ ./test_freezer
      ok 1 test_cgfreezer_simple
      ok 2 test_cgfreezer_tree
      ok 3 test_cgfreezer_forkbomb
      ok 4 test_cgrreezer_rmdir
      ok 5 test_cgfreezer_migrate
      ok 6 test_cgfreezer_ptrace
      ok 7 test_cgfreezer_stopped
      ok 8 test_cgfreezer_ptraced
      ok 9 test_cgfreezer_vfork
    Signed-off-by: default avatarRoman Gushchin <guro@fb.com>
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: kernel-team@fb.com
    Cc: linux-kselftest@vger.kernel.org
    5313bfe4
test_freezer.c 15.1 KB