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:
Коммит
83c4087ce4
|
@ -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);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче