Fixed typos, described sched_relax_domain_level.

This commit is contained in:
Connor Doyle 2017-07-13 21:35:08 -07:00
parent 79a2bb5c0d
commit ca32930c93
1 changed files with 6 additions and 3 deletions

View File

@ -238,13 +238,13 @@ func (p *dynamicPolicy) UnregisterContainer(s State, containerID string) error {
case the strategy outlined above where allocations are taken case the strategy outlined above where allocations are taken
directly from the shared pool is too simplistic. We could allow an directly from the shared pool is too simplistic. We could allow an
explicit pool of cores that may be exclusively allocated and default explicit pool of cores that may be exclusively allocated and default
this to the shared pool (leaving at least one core fro the shared this to the shared pool (leaving at least one core for the shared
cpuset to be used for OS, infra and non-exclusive containers. cpuset to be used for OS, infra and non-exclusive containers.
## Practical challenges ## Practical challenges
1. Synchronizing CPU Manager state with the container runtime via the 1. Synchronizing CPU Manager state with the container runtime via the
CRI. Runc/libcontainer allows container cgroup settings to be updtaed CRI. Runc/libcontainer allows container cgroup settings to be updated
after creation, but neither the Kubelet docker shim nor the CRI after creation, but neither the Kubelet docker shim nor the CRI
implement a similar interface. implement a similar interface.
1. Mitigation: [PR 46105](https://github.com/kubernetes/kubernetes/pull/46105) 1. Mitigation: [PR 46105](https://github.com/kubernetes/kubernetes/pull/46105)
@ -287,7 +287,9 @@ func (p *dynamicPolicy) UnregisterContainer(s State, containerID string) error {
## Appendix A: cpuset pitfalls ## Appendix A: cpuset pitfalls
1. `cpuset.sched_relax_domain_level` 1. [`cpuset.sched_relax_domain_level`][cpuset-files]. "controls the width of
the range of CPUs over which the kernel scheduler performs immediate
rebalancing of runnable tasks across CPUs."
1. Child cpusets must be subsets of their parents. If B is a child of A, 1. Child cpusets must be subsets of their parents. If B is a child of A,
then B must be a subset of A. Attempting to shrink A such that B then B must be a subset of A. Attempting to shrink A such that B
would contain allowed CPUs not in A is not allowed (the write will would contain allowed CPUs not in A is not allowed (the write will
@ -300,6 +302,7 @@ func (p *dynamicPolicy) UnregisterContainer(s State, containerID string) error {
1. Tricky semantics when cpusets are combined with CFS shares and quota. 1. Tricky semantics when cpusets are combined with CFS shares and quota.
[cat]: http://www.intel.com/content/www/us/en/communications/cache-monitoring-cache-allocation-technologies.html [cat]: http://www.intel.com/content/www/us/en/communications/cache-monitoring-cache-allocation-technologies.html
[cpuset-files]: http://man7.org/linux/man-pages/man7/cpuset.7.html#FILES
[ht]: http://www.intel.com/content/www/us/en/architecture-and-technology/hyper-threading/hyper-threading-technology.html [ht]: http://www.intel.com/content/www/us/en/architecture-and-technology/hyper-threading/hyper-threading-technology.html
[hwloc]: https://www.open-mpi.org/projects/hwloc [hwloc]: https://www.open-mpi.org/projects/hwloc
[procfs]: http://man7.org/linux/man-pages/man5/proc.5.html [procfs]: http://man7.org/linux/man-pages/man5/proc.5.html