Merge branch 'for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup

Pull cgroup updates from Tejun Heo:
 "All trivial changes - simplification, typo fix and adding
  cond_resched() in a netclassid update loop"

* 'for-4.20' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
  cgroup, netclassid: add a preemption point to write_classid
  rdmacg: fix a typo in rdmacg documentation
  cgroup: Simplify cgroup_ancestor
This commit is contained in:
Linus Torvalds 2018-10-25 17:15:46 -07:00
Родитель a67eefad99 a90e90b7d5
Коммит 83c4087ce4
3 изменённых файлов: 5 добавлений и 13 удалений

Просмотреть файл

@ -27,7 +27,7 @@ cgroup.
Currently user space applications can easily take away all the rdma verb Currently user space applications can easily take away all the rdma verb
specific resources such as AH, CQ, QP, MR etc. Due to which other applications specific resources such as AH, CQ, QP, MR etc. Due to which other applications
in other cgroup or kernel space ULPs may not even get chance to allocate any in other cgroup or kernel space ULPs may not even get chance to allocate any
rdma resources. This can leads to service unavailability. rdma resources. This can lead to service unavailability.
Therefore RDMA controller is needed through which resource consumption Therefore RDMA controller is needed through which resource consumption
of processes can be limited. Through this controller different rdma of processes can be limited. Through this controller different rdma

Просмотреть файл

@ -569,20 +569,11 @@ static inline bool cgroup_is_descendant(struct cgroup *cgrp,
static inline struct cgroup *cgroup_ancestor(struct cgroup *cgrp, static inline struct cgroup *cgroup_ancestor(struct cgroup *cgrp,
int ancestor_level) int ancestor_level)
{ {
struct cgroup *ptr;
if (cgrp->level < ancestor_level) if (cgrp->level < ancestor_level)
return NULL; return NULL;
while (cgrp && cgrp->level > ancestor_level)
for (ptr = cgrp; cgrp = cgroup_parent(cgrp);
ptr && ptr->level > ancestor_level; return cgrp;
ptr = cgroup_parent(ptr))
;
if (ptr && ptr->level == ancestor_level)
return ptr;
return NULL;
} }
/** /**

Просмотреть файл

@ -106,6 +106,7 @@ static int write_classid(struct cgroup_subsys_state *css, struct cftype *cft,
iterate_fd(p->files, 0, update_classid_sock, iterate_fd(p->files, 0, update_classid_sock,
(void *)(unsigned long)cs->classid); (void *)(unsigned long)cs->classid);
task_unlock(p); task_unlock(p);
cond_resched();
} }
css_task_iter_end(&it); css_task_iter_end(&it);