On 10/12/2018 11:55 AM, Waiman Long wrote:
Given the fact that thread mode had been merged into 4.14, it is now time to enable cpuset to be used in the default hierarchy (cgroup v2) as it is clearly threaded. The cpuset controller had experienced feature creep since its introduction more than a decade ago. Besides the core cpus and mems control files to limit cpus and memory nodes, there are a bunch of additional features that can be controlled from the userspace. Some of the features are of doubtful usefulness and may not be actively used. This patch enables cpuset controller in the default hierarchy with a minimal set of features, namely just the cpus and mems and their effective_* counterparts. We can certainly add more features to the default hierarchy in the future if there is a real user need for them later on.
I really appreciate this simplification of the cpuset controller. I currently have an in-house customer that is unhappy with the way cgroups cpuset v1 handles offlined CPUs. This patchset makes two significant improvements over current cpuset v1 behavior. 1) It allows for offlined CPUs to be added to a cpuset (even though the CPU is offline) and 2) it restores CPUs back to the requested cpuset when they come back online. This is more intuitive and secure for my customers. Thank you! In part because of this patchset, I plan on proposing similar behavior for offlined CPUs to cpuset v1. Thanks. Tom