Skip to content

cgroup/cpuset: Provide better cpuset API to enable creation of isolated partition

Waiman Long requested to merge llong1/centos-stream-9:bz2174568_isolcpus into main

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2174568
MR: !2957 (merged)

OpenShfit requires support to disable CPU load balancing for the Telco use cases and this is a gating factor in determining if it can switch to use cgroup v2 as the default.

The current RHEL9 kernel is able to create an isolated cpuset partition of exclusive CPUs with load balancing disabled for cgroup v2. However, it currently has the limitation that isolated cpuset partitions can only be formed clustered around the cgroup root. That doesn't fit the current OpenShift use case where systemd is primarily responsible for managing the cgroup filesystem and OpenShift can only manage child cgroups further away from the cgroup root.

To address the need of OpenShift, a patch series [1] has been proposed upstream to extend the v2 cpuset partition semantics to allow the creation of isolated partitions further away from cgroup root by adding a new cpuset control file "cpuset.cpus.exclusive" to distribute potential exclusive CPUs down the cgroup hierarchy for the creation of isolated cpuset partition.

This MR incorporates the proposed upstream patches with its dependency patches to provide a way for OpenShift to move forward with switching the default cgroup from v1 to v2 for the 4.14 release.

The last 6 patches are the proposed upstream patches and the rests have been merged upstream either in the mainline or the cgroup maintainer's tree.

[1] https://lore.kernel.org/lkml/20230817132454.755459-1-longman@redhat.com/

Signed-off-by: Waiman Long longman@redhat.com

Edited by Waiman Long

Merge request reports