aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/cgroup.txt
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-03-27 11:39:58 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-03-27 11:39:58 +0200
commitbf5e585c5e1b12fe80ee486fdd48eeb71a13fa21 (patch)
tree95748ad5d0c86675e3fd4264b8e66c3ba0c4a9c5 /sys/linux/cgroup.txt
parentc7e0d50a76c1970d8f326a49ef24fc5d19ee93c1 (diff)
executor: rework cgroups support
Turns out creating a cgroup per test is too expensive. Moreover, it leads to hanged tasks as cgroup destruction is asynchronous and overloads kernel work queues. Create only a single cgroup per proc, but restrict descriptions to mess with that single group, instead test processes create own nested cgroups for messing.
Diffstat (limited to 'sys/linux/cgroup.txt')
-rw-r--r--sys/linux/cgroup.txt7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/linux/cgroup.txt b/sys/linux/cgroup.txt
index 1037bb823..951be2123 100644
--- a/sys/linux/cgroup.txt
+++ b/sys/linux/cgroup.txt
@@ -9,9 +9,10 @@ resource fd_cgroup_subtree[fd]
resource fd_cgroup_int[fd]
resource fd_cgroup_pid[fd]
+mkdirat$cgroup_root(fd const[AT_FDCWD], path ptr[in, string[cgroup_dirs]], mode const[0x1ff])
+mkdirat$cgroup(fd fd_cgroup, path ptr[in, string[cgroup_names]], mode const[0x1ff])
openat$cgroup_root(fd const[AT_FDCWD], file ptr[in, string[cgroup_dirs]], flags const[CGROUP_OPEN_FLAGS], mode const[0]) fd_cgroup
openat$cgroup(fd fd_cgroup, file ptr[in, string[cgroup_names]], flags const[CGROUP_OPEN_FLAGS], mode const[0]) fd_cgroup
-mkdirat$cgroup(fd fd_cgroup, path ptr[in, string[cgroup_names]], mode flags[open_mode])
openat$cgroup_ro(fd fd_cgroup, file ptr[in, string[cgroup_ctrl_read]], flags const[O_RDONLY], mode const[0]) fd
openat$cgroup_int(fd fd_cgroup, file ptr[in, string[cgroup_ctrl_int]], flags const[O_RDWR], mode const[0]) fd_cgroup_int
openat$cgroup_procs(fd fd_cgroup, file ptr[in, string[cgroup_proc_files]], flags const[O_RDWR], mode const[0]) fd_cgroup_pid
@@ -41,9 +42,9 @@ cgroup_control {
sp const[32, int8]
} [packed]
-cgroup_dirs = "./cgroup", "./cgroup.cpu", "./cgroup.net"
+cgroup_dirs = "./cgroup/syz0", "./cgroup/syz1", "./cgroup.cpu/syz0", "./cgroup.cpu/syz1", "./cgroup.net/syz0", "./cgroup.net/syz1"
cgroup_names = "syz0", "syz1"
-cgroup_paths = "./cgroup", "./cgroup.cpu", "./cgroup.net", "./cgroup/syz0", "./cgroup.cpu/syz0", "./cgroup.net/syz0", "./cgroup/syz1", "./cgroup.cpu/syz1", "./cgroup.net/syz1"
+cgroup_paths = "./cgroup/syz0", "./cgroup.cpu/syz0", "./cgroup.net/syz0", "./cgroup/syz1", "./cgroup.cpu/syz1", "./cgroup.net/syz1"
# '+', '-'
cgroup_control_signs = 43, 45
# '+', '-', ',', '/', ';' and digits