linux/kernel/cgroup
Tejun Heo b636fd38dc cgroup: Implement css_task_iter_skip()
When a task is moved out of a cset, task iterators pointing to the
task are advanced using the normal css_task_iter_advance() call.  This
is fine but we'll be tracking dying tasks on csets and thus moving
tasks from cset->tasks to (to be added) cset->dying_tasks.  When we
remove a task from cset->tasks, if we advance the iterators, they may
move over to the next cset before we had the chance to add the task
back on the dying list, which can allow the task to escape iteration.

This patch separates out skipping from advancing.  Skipping only moves
the affected iterators to the next pointer rather than fully advancing
it and the following advancing will recognize that the cursor has
already been moved forward and do the rest of advancing.  This ensures
that when a task moves from one list to another in its cset, as long
as it moves in the right direction, it's always visible to iteration.

This doesn't cause any visible behavior changes.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
2019-05-31 10:38:58 -07:00
..
cgroup-internal.h cgroup: make TRACE_CGROUP_PATH irq-safe 2019-04-19 11:26:49 -07:00
cgroup-v1.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
cgroup.c cgroup: Implement css_task_iter_skip() 2019-05-31 10:38:58 -07:00
cpuset.c cgroup/cpuset: Update stale generate_sched_domains() comments 2019-04-19 19:44:14 +02:00
debug.c kernel: cgroup: fix misuse of %x 2019-05-06 08:47:48 -07:00
freezer.c cgroup: get rid of cgroup_freezer_frozen_exit() 2019-05-06 08:39:11 -07:00
legacy_freezer.c cgroup: rename freezer.c into legacy_freezer.c 2019-04-19 11:26:48 -07:00
Makefile cgroup: cgroup v2 freezer 2019-04-19 11:26:48 -07:00
namespace.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pids.c cgroup/pids: turn cgroup_subsys->free() into cgroup_subsys->release() to fix the accounting 2019-01-31 06:55:57 -08:00
rdma.c IB/core: Simplify rdma cgroup registration 2019-01-18 13:43:10 -07:00
rstat.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00