linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/10] cgroups: Task counter subsystem v8
@ 2012-02-01  3:37 Frederic Weisbecker
  2012-02-01  3:37 ` [PATCH 01/10] cgroups: add res_counter_write_u64() API Frederic Weisbecker
                   ` (11 more replies)
  0 siblings, 12 replies; 37+ messages in thread
From: Frederic Weisbecker @ 2012-02-01  3:37 UTC (permalink / raw)
  To: Andrew Morton, Tejun Heo, Li Zefan
  Cc: LKML, Frederic Weisbecker, Kirill A. Shutemov, Paul Menage,
	Johannes Weiner, Aditya Kali, Oleg Nesterov, Tim Hockin,
	Containers, Glauber Costa, Cgroups, Daniel J Walsh,
	Daniel P. Berrange, KAMEZAWA Hiroyuki, Max Kellermann,
	Mandeep Singh Baines

Hi,

Changes In this version:

- Split 32/64 bits version of res_counter_write_u64() [1/10]
  Courtesy of Kirill A. Shutemov

- Added Kirill's ack [8/10]

- Added selftests [9/10], [10/10]

Please consider for merging. At least two users want this feature:
https://lkml.org/lkml/2011/12/13/309
https://lkml.org/lkml/2011/12/13/364

More general details provided in the last version posting:
https://lkml.org/lkml/2012/1/13/230

Thanks!


Frederic Weisbecker (9):
  cgroups: add res_counter_write_u64() API
  cgroups: new resource counter inheritance API
  cgroups: ability to stop res charge propagation on bounded ancestor
  res_counter: allow charge failure pointer to be null
  cgroups: pull up res counter charge failure interpretation to caller
  cgroups: allow subsystems to cancel a fork
  cgroups: Add a task counter subsystem
  selftests: Enter each directories before executing selftests
  selftests: Add a new task counter selftest

Kirill A. Shutemov (1):
  cgroups: add res counter common ancestor searching

 Documentation/cgroups/resource_counter.txt         |   20 ++-
 Documentation/cgroups/task_counter.txt             |  153 +++++++++++
 include/linux/cgroup.h                             |   20 +-
 include/linux/cgroup_subsys.h                      |    5 +
 include/linux/res_counter.h                        |   27 ++-
 init/Kconfig                                       |    9 +
 kernel/Makefile                                    |    1 +
 kernel/cgroup.c                                    |   23 ++-
 kernel/cgroup_freezer.c                            |    6 +-
 kernel/cgroup_task_counter.c                       |  272 ++++++++++++++++++++
 kernel/exit.c                                      |    2 +-
 kernel/fork.c                                      |    7 +-
 kernel/res_counter.c                               |  103 +++++++-
 tools/testing/selftests/Makefile                   |    2 +-
 tools/testing/selftests/run_tests                  |    6 +-
 tools/testing/selftests/task_counter/Makefile      |    8 +
 tools/testing/selftests/task_counter/fork.c        |   40 +++
 tools/testing/selftests/task_counter/forkbomb.c    |   40 +++
 tools/testing/selftests/task_counter/multithread.c |   68 +++++
 tools/testing/selftests/task_counter/run_test      |  198 ++++++++++++++
 .../selftests/task_counter/spread_thread_group.c   |   82 ++++++
 21 files changed, 1056 insertions(+), 36 deletions(-)
 create mode 100644 Documentation/cgroups/task_counter.txt
 create mode 100644 kernel/cgroup_task_counter.c
 create mode 100644 tools/testing/selftests/task_counter/Makefile
 create mode 100644 tools/testing/selftests/task_counter/fork.c
 create mode 100644 tools/testing/selftests/task_counter/forkbomb.c
 create mode 100644 tools/testing/selftests/task_counter/multithread.c
 create mode 100755 tools/testing/selftests/task_counter/run_test
 create mode 100644 tools/testing/selftests/task_counter/spread_thread_group.c

-- 
1.7.5.4


^ permalink raw reply	[flat|nested] 37+ messages in thread
* [PATCH 00/10] cgroups: Task counter subsystem v6
@ 2011-10-03 19:07 Frederic Weisbecker
  2011-10-03 19:07 ` [PATCH 02/10] cgroups: New resource counter inheritance API Frederic Weisbecker
  0 siblings, 1 reply; 37+ messages in thread
From: Frederic Weisbecker @ 2011-10-03 19:07 UTC (permalink / raw)
  To: Andrew Morton
  Cc: LKML, Frederic Weisbecker, Paul Menage, Li Zefan, Johannes Weiner,
	Aditya Kali, Oleg Nesterov, Kay Sievers, Tim Hockin, Tejun Heo,
	Kirill A. Shutemov, Containers

Hi Andrew,

This contains minor changes, mostly documentation and changelog
updates, off-case build fix, and a code optimization in
res_counter_common_ancestor().

It's hard to put some statistic numbers while testing this feature
given that the result is rather binary: we launch a forkbomb and
either we stop and kill it or the system become unresponsive.
    
Meanwhile, one can find a testsuite at this address:
https://tglx.de/~fweisbec/task_counter_test.tar.gz
    
It performs several checks to ensure the interface and the behaviour
are reliable after common events like moving tasks around over cgroups
in a hierarchy, forking inside, etc.. It also launches a forkbomb,
tries to stop and kill it. So beware, don't run it on a system that
is doing serious things. Ensure you have CGROUP_TASK_COUNTER set
before, or it may compress the Ten Plagues in your MBR and
inflate the whole after your next reboot.

Changes in v6:

- Update res_counter_common_ancestor() to be O(n+m) instead of O(n*m),
patch from Kirill A. Shutemov (6/10)
- Refine documentation and changelog to better explain the claims and
goals of this subsystem (10/10)
- Fix !CONFIG_CGROUPS build crash (10/10)
- Step over the temporary state that used an ad-hoc fork hook.

Frederic Weisbecker (9):
  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
  res_counter: Allow charge failure pointer to be null
  cgroups: Pull up res counter charge failure interpretation to caller
  cgroups: Allow subsystems to cancel a fork
  cgroups: Add a task counter subsystem

Kirill A. Shutemov (1):
  cgroups: Add res counter common ancestor searching

 Documentation/cgroups/cgroups.txt          |   13 ++-
 Documentation/cgroups/resource_counter.txt |   20 +++-
 Documentation/cgroups/task_counter.txt     |  153 ++++++++++++++++++
 block/blk-cgroup.c                         |   12 +-
 include/linux/cgroup.h                     |   28 +++-
 include/linux/cgroup_subsys.h              |    8 +
 include/linux/res_counter.h                |   27 +++-
 init/Kconfig                               |    9 +
 kernel/Makefile                            |    1 +
 kernel/cgroup.c                            |   58 ++++++--
 kernel/cgroup_freezer.c                    |    9 +-
 kernel/cgroup_task_counter.c               |  239 ++++++++++++++++++++++++++++
 kernel/cpuset.c                            |    6 +-
 kernel/events/core.c                       |    5 +-
 kernel/exit.c                              |    2 +-
 kernel/fork.c                              |    7 +-
 kernel/res_counter.c                       |   97 ++++++++++--
 kernel/sched.c                             |    6 +-
 18 files changed, 644 insertions(+), 56 deletions(-)
 create mode 100644 Documentation/cgroups/task_counter.txt
 create mode 100644 kernel/cgroup_task_counter.c

-- 
1.7.5.4


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2013-04-02  0:08 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-01  3:37 [PATCH 00/10] cgroups: Task counter subsystem v8 Frederic Weisbecker
2012-02-01  3:37 ` [PATCH 01/10] cgroups: add res_counter_write_u64() API Frederic Weisbecker
2012-02-02 12:33   ` Kirill A. Shutemov
2012-02-02 13:56     ` Frederic Weisbecker
2012-02-01  3:37 ` [PATCH 02/10] cgroups: new resource counter inheritance API Frederic Weisbecker
2012-02-01  3:37 ` [PATCH 03/10] cgroups: ability to stop res charge propagation on bounded ancestor Frederic Weisbecker
2012-02-01  3:37 ` [PATCH 04/10] cgroups: add res counter common ancestor searching Frederic Weisbecker
2012-02-01  3:37 ` [PATCH 05/10] res_counter: allow charge failure pointer to be null Frederic Weisbecker
2012-02-01  3:37 ` [PATCH 06/10] cgroups: pull up res counter charge failure interpretation to caller Frederic Weisbecker
2012-02-01  3:37 ` [PATCH 07/10] cgroups: allow subsystems to cancel a fork Frederic Weisbecker
2012-02-01  3:37 ` [PATCH 08/10] cgroups: Add a task counter subsystem Frederic Weisbecker
2012-02-01  3:37 ` [PATCH 09/10] selftests: Enter each directories before executing selftests Frederic Weisbecker
2012-02-01  3:37 ` [PATCH 10/10] selftests: Add a new task counter selftest Frederic Weisbecker
2012-02-01 16:31 ` [PATCH 00/10] cgroups: Task counter subsystem v8 Tejun Heo
2012-02-01 18:50   ` Frederic Weisbecker
2012-02-01 19:51     ` Andrew Morton
2012-02-02 14:50       ` Frederic Weisbecker
2012-02-16 15:31         ` Frederic Weisbecker
2012-03-01 22:53         ` Daniel Lezcano
2012-03-05  3:21           ` Frederic Weisbecker
2012-03-05 16:26             ` Tejun Heo
2012-03-05 16:27               ` Tejun Heo
2012-03-05 16:48                 ` Frederic Weisbecker
2012-03-05 16:44       ` Rik van Riel
2013-04-01 18:43 ` Tim Hockin
2013-04-01 18:46   ` Tejun Heo
2013-04-01 20:09     ` Tim Hockin
2013-04-01 20:29       ` Tejun Heo
2013-04-01 21:02         ` Tim Hockin
2013-04-01 22:03           ` Tejun Heo
2013-04-01 22:20             ` Tim Hockin
2013-04-01 22:35               ` Tejun Heo
2013-04-01 22:57                 ` Tim Hockin
2013-04-01 23:18                   ` Tejun Heo
2013-04-02  0:07                     ` Tim Hockin
  -- strict thread matches above, loose matches on Subject: below --
2011-10-03 19:07 [PATCH 00/10] cgroups: Task counter subsystem v6 Frederic Weisbecker
2011-10-03 19:07 ` [PATCH 02/10] cgroups: New resource counter inheritance API Frederic Weisbecker
2011-10-04  0:20   ` Kirill A. Shutemov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).