Messages in this thread | | | From | Frederic Weisbecker <> | Subject | [PATCH 00/12 v4][RESEND] cgroups: Task counter subsystem | Date | Tue, 6 Sep 2011 02:12:54 +0200 |
| |
(Sorry, I had unbalanced "<" and ">" around email addresses so I need to resend otherwise LKML wouldn't take it.)
Reminder:
The task counter is a cgroup subsystem that features an upper bound limitation on the number of tasks running inside cgroup.
It has two desired usecases, but possibly more can be found:
- Protect against forkbomb in the scope of a cgroup, this can be especially useful in the case of containers where traditional rlmit is too limited.
- Kill all tasks inside a cgroup without worrying about races against concurrent forks.
See documentation in patch 10/12 for more details.
May be I should rebase the whole against Tejun's patches that use an iterator on tasks.
Changes in v4:
- Rebase on top of "cgroups: Don't attach task to subsystem if migration failed" (https://lkml.org/lkml/2011/8/26/262), applied in -mm. - Add comment about the use of spinlock in res_counter_write_u64() (patch 1) - Update documentation after [can_]attach_task() arguments changes (patch 3) - Update documentation for cancel_attach_task() new callback (patch 4) - Cancel task attachment on migration failure in cgroup_attach_proc() (patch 4) - Some function inlining (patch 5) - Move "Allow charge failure pointer to be null" earlier in the set for sanity (patch 7) - Fix error return value (patch 8 and 9) - Whitespace fixes, comments added, improve config help section (patch 9) - Drop subsystem early init (patch 9) - Add subsystem documentation (patch 10) - Remove ad-hoc fork hook and reuse existing one for cgroup (patch 11 and 12)
This can not be pulled from:
git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing.git cgroup/nr_proc-v4
Frederic Weisbecker (12): cgroups: Add res_counter_write_u64() API cgroups: New resource counter inheritance API cgroups: Add previous cgroup in can_attach_task/attach_task callbacks cgroups: New cancel_attach_task subsystem callback cgroups: Ability to stop res charge propagation on bounded ancestor cgroups: Add res counter common ancestor searching res_counter: Allow charge failure pointer to be null cgroups: Pull up res counter charge failure interpretation to caller cgroups: Add a task counter subsystem cgroups: Add documentation for task counter subsystem cgroups: Allow subsystems to cancel a fork cgroups: Convert task counter to use the subsys fork callback
Documentation/cgroups/cgroups.txt | 13 ++- Documentation/cgroups/task_counter.txt | 126 ++++++++++++++++++++ block/blk-cgroup.c | 10 +- include/linux/cgroup.h | 20 ++- include/linux/cgroup_subsys.h | 8 ++ include/linux/res_counter.h | 25 ++++- init/Kconfig | 7 + kernel/Makefile | 1 + kernel/cgroup.c | 56 +++++++-- kernel/cgroup_freezer.c | 9 +- kernel/cgroup_task_counter.c | 200 ++++++++++++++++++++++++++++++++ kernel/cpuset.c | 6 +- kernel/events/core.c | 5 +- kernel/exit.c | 2 +- kernel/fork.c | 7 +- kernel/res_counter.c | 77 ++++++++++--- kernel/sched.c | 6 +- 17 files changed, 524 insertions(+), 54 deletions(-) create mode 100644 Documentation/cgroups/task_counter.txt create mode 100644 kernel/cgroup_task_counter.c
-- 1.7.5.4
| |