linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/7] freezer for cgroup v2
@ 2018-11-30 23:47 Roman Gushchin
  2018-11-30 23:47 ` [PATCH v4 1/7] cgroup: rename freezer.c into legacy_freezer.c Roman Gushchin
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Roman Gushchin @ 2018-11-30 23:47 UTC (permalink / raw)
  To: Tejun Heo, Oleg Nesterov
  Cc: Dan Carpenter, Mike Rapoport, cgroups, linux-doc, linux-kernel,
	kernel-team, Roman Gushchin

freezer for cgroup v2

This patchset implements freezer for cgroup v2.

It provides similar functionality as v1 freezer, but the interface
conforms to the cgroup v2 interface design principles, and it
provides a better user experience: tasks can be killed, ptrace works,
there is no separate controller, which has to be enabled, etc.

Patches (1), (2) and (3) are some preparational work, patch (4) contains
the implementation, patch (5) is a small cgroup kselftest fix,
patch (6) covers freezer adds 6 new kselftests to cover the freezer
functionality. Patch (7) adds corresponding docs.

v4->v3:
  - fixed cgroup state transitions on task migration (by Tejun Heo)
  - reading nr_descendants doesn't require taking css_set_lock anymore
  - fixed docs based on Mike Rapoport's feedback
  - fixed double irq lock found by Dan Carpenter

v3->v2:
  - dropped TASK_FROZEN for now, frozen tasks are put into TASK_INTERRUPTIBLE
  state; it's probably not the final version, but the API question can be
  discussed separately
  - don't clear TIF_SIGPENDING before going to sleep, instead add
  task->frozen check in signal_pending_state() and recalc_sigpending()
  - cgroup-level counter are now synchronized using css_set_lock,
  which simplified the whole code (e.g. per-cgroup works were removed)
  - the amount of comments increased significantly
  - many other improvements incorporating feedback from Tejun and Oleg

v2->v1:
  - fixed locking aroung calling cgroup_freezer_leave()
  - added docs

Roman Gushchin (7):
  cgroup: rename freezer.c into legacy_freezer.c
  cgroup: implement __cgroup_task_count() helper
  cgroup: protect cgroup->nr_(dying_)descendants by css_set_lock
  cgroup: cgroup v2 freezer
  kselftests: cgroup: don't fail on cg_kill_all() error in cg_destroy()
  kselftests: cgroup: add freezer controller self-tests
  cgroup: document cgroup v2 freezer interface

 Documentation/admin-guide/cgroup-v2.rst       |  27 +
 include/linux/cgroup-defs.h                   |  31 +
 include/linux/cgroup.h                        |  42 ++
 include/linux/sched.h                         |   2 +
 include/linux/sched/jobctl.h                  |   2 +
 include/linux/sched/signal.h                  |   3 +
 kernel/cgroup/Makefile                        |   4 +-
 kernel/cgroup/cgroup-internal.h               |   1 +
 kernel/cgroup/cgroup-v1.c                     |  16 -
 kernel/cgroup/cgroup.c                        | 151 +++-
 kernel/cgroup/freezer.c                       | 653 +++++++----------
 kernel/cgroup/legacy_freezer.c                | 481 ++++++++++++
 kernel/ptrace.c                               |   7 +
 kernel/signal.c                               |  58 +-
 tools/testing/selftests/cgroup/.gitignore     |   1 +
 tools/testing/selftests/cgroup/Makefile       |   2 +
 tools/testing/selftests/cgroup/cgroup_util.c  |  85 ++-
 tools/testing/selftests/cgroup/cgroup_util.h  |   7 +
 tools/testing/selftests/cgroup/test_freezer.c | 685 ++++++++++++++++++
 19 files changed, 1811 insertions(+), 447 deletions(-)
 create mode 100644 kernel/cgroup/legacy_freezer.c
 create mode 100644 tools/testing/selftests/cgroup/test_freezer.c

-- 
2.17.2


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

end of thread, other threads:[~2018-12-04  0:11 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-30 23:47 [PATCH v4 0/7] freezer for cgroup v2 Roman Gushchin
2018-11-30 23:47 ` [PATCH v4 1/7] cgroup: rename freezer.c into legacy_freezer.c Roman Gushchin
2018-11-30 23:47 ` [PATCH v4 2/7] cgroup: implement __cgroup_task_count() helper Roman Gushchin
2018-11-30 23:47 ` [PATCH v4 3/7] cgroup: protect cgroup->nr_(dying_)descendants by css_set_lock Roman Gushchin
2018-12-03 16:17   ` Tejun Heo
2018-12-03 17:55     ` Roman Gushchin
2018-11-30 23:47 ` [PATCH v4 4/7] cgroup: cgroup v2 freezer Roman Gushchin
2018-12-03 14:47   ` Oleg Nesterov
2018-12-04  0:11     ` Roman Gushchin
2018-12-03 14:49   ` Oleg Nesterov
2018-12-03 15:35   ` Oleg Nesterov
2018-11-30 23:47 ` [PATCH v4 5/7] kselftests: cgroup: don't fail on cg_kill_all() error in cg_destroy() Roman Gushchin
2018-11-30 23:47 ` [PATCH v4 6/7] kselftests: cgroup: add freezer controller self-tests Roman Gushchin
2018-11-30 23:47 ` [PATCH v4 7/7] cgroup: document cgroup v2 freezer interface Roman Gushchin
2018-12-03  6:21   ` Mike Rapoport

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).