From ca32930c93c483c2dbe75e970524220f81b6ef8c Mon Sep 17 00:00:00 2001 From: Connor Doyle Date: Thu, 13 Jul 2017 21:35:08 -0700 Subject: [PATCH] Fixed typos, described sched_relax_domain_level. --- contributors/design-proposals/cpu-manager.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/contributors/design-proposals/cpu-manager.md b/contributors/design-proposals/cpu-manager.md index 77ce30211..0e5721996 100644 --- a/contributors/design-proposals/cpu-manager.md +++ b/contributors/design-proposals/cpu-manager.md @@ -238,13 +238,13 @@ func (p *dynamicPolicy) UnregisterContainer(s State, containerID string) error { case the strategy outlined above where allocations are taken directly from the shared pool is too simplistic. We could allow an 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. ## Practical challenges 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 implement a similar interface. 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 -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, 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 @@ -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. [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 [hwloc]: https://www.open-mpi.org/projects/hwloc [procfs]: http://man7.org/linux/man-pages/man5/proc.5.html