cgroup: reimplement reading "cgroup.procs" on cgroup v2
authorTejun Heo <tj@kernel.org>
Tue, 27 Dec 2016 19:49:04 +0000 (14:49 -0500)
committerTejun Heo <tj@kernel.org>
Tue, 27 Dec 2016 19:49:04 +0000 (14:49 -0500)
commitb4b90a8e86f2539a028d68077b45e8511dd2adb0
tree27bbbcc7d7e18b1f288e982fc01d2b2f631ac5c8
parente90cbebc3fa5caea4c8bfeb0d0157a0cee53efc7
cgroup: reimplement reading "cgroup.procs" on cgroup v2

On v1, "tasks" and "cgroup.procs" are expected to be sorted which
makes the implementation expensive and unnecessarily complicated
involving result cache management.

v2 doesn't have the sorting requirement, so it can just iterate and
print processes one by one.  seq_files are either read sequentially or
reset to position zero, so the implementation doesn't even need to
worry about seeking.

This keeps the css_task_iter across multiple read(2) calls and
migrations of new processes always append won't miss processes which
are newly migrated in before each read(2).

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Acked-by: Zefan Li <lizefan@huawei.com>
kernel/cgroup.c