Commit 1fc1cd83 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull cgroup updates from Tejun Heo:

 - Oleg's pids controller accounting update which gets rid of rcu delay
   in pids accounting updates

 - rstat (cgroup hierarchical stat collection mechanism) optimization

 - Doc updates

* 'for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
  cpuset: remove unused task_has_mempolicy()
  cgroup, rstat: Don't flush subtree root unless necessary
  cgroup: add documentation for pids.events file
  Documentation: cgroup-v2: eliminate markup warnings
  MAINTAINERS: Update cgroup entry
  cgroup/pids: turn cgroup_subsys->free() into cgroup_subsys->release() to fix the accounting
parents abf7c3d8 6a613d24
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1519,7 +1519,7 @@ protected workload.

The limits are only applied at the peer level in the hierarchy.  This means that
in the diagram below, only groups A, B, and C will influence each other, and
groups D and F will influence each other.  Group G will influence nobody.
groups D and F will influence each other.  Group G will influence nobody::

			[root]
		/	   |		\
+3 −0
Original line number Diff line number Diff line
@@ -33,6 +33,9 @@ limit in the hierarchy is followed).
pids.current tracks all child cgroup hierarchies, so parent/pids.current is a
superset of parent/child/pids.current.

The pids.events file contains event counters:
  - max: Number of times fork failed because limit was hit.

Example
-------

+3 −2
Original line number Diff line number Diff line
@@ -3970,9 +3970,10 @@ M: Johannes Weiner <hannes@cmpxchg.org>
L:	cgroups@vger.kernel.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
S:	Maintained
F:	Documentation/cgroup*
F:	Documentation/admin-guide/cgroup-v2.rst
F:	Documentation/cgroup-v1/
F:	include/linux/cgroup*
F:	kernel/cgroup*
F:	kernel/cgroup/

CONTROL GROUP - CPUSET
M:	Li Zefan <lizefan@huawei.com>
+1 −1
Original line number Diff line number Diff line
@@ -606,7 +606,7 @@ struct cgroup_subsys {
	void (*cancel_fork)(struct task_struct *task);
	void (*fork)(struct task_struct *task);
	void (*exit)(struct task_struct *task);
	void (*free)(struct task_struct *task);
	void (*release)(struct task_struct *task);
	void (*bind)(struct cgroup_subsys_state *root_css);

	bool early_init:1;
+2 −0
Original line number Diff line number Diff line
@@ -121,6 +121,7 @@ extern int cgroup_can_fork(struct task_struct *p);
extern void cgroup_cancel_fork(struct task_struct *p);
extern void cgroup_post_fork(struct task_struct *p);
void cgroup_exit(struct task_struct *p);
void cgroup_release(struct task_struct *p);
void cgroup_free(struct task_struct *p);

int cgroup_init_early(void);
@@ -697,6 +698,7 @@ static inline int cgroup_can_fork(struct task_struct *p) { return 0; }
static inline void cgroup_cancel_fork(struct task_struct *p) {}
static inline void cgroup_post_fork(struct task_struct *p) {}
static inline void cgroup_exit(struct task_struct *p) {}
static inline void cgroup_release(struct task_struct *p) {}
static inline void cgroup_free(struct task_struct *p) {}

static inline int cgroup_init_early(void) { return 0; }
Loading