-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Hoping that this project isn't abandoned; so here goes :)
Is your feature request related to a problem? Please describe.
Currently, only cgroupv1 appears to be supported by CPU-Pooler. Most operating systems are moving to CGv2, which appears to break CPU-Pooler functionality. Additionally, after the deprecation of the Intel CPU manager, CPU-Pooler appears to now be the canonical way of achieving effective core isolation for low latency applications.
Describe the solution you'd like
CPU-Pooler should be able to:
- Determine the underlying cgroupfs version.
- Adjust the shared/exclusive thread allocations identically to how it behaves currently, across both versions.
Describe alternatives you've considered
Intel CPU manager, which is now deprecated. The embedded CPU scheduling of K8s is insufficient for certain workloads.
Additional context
tasks path in CGv2 has changed, for example:
- CGv1:
/sys/fs/cgroup/cpuset/cgroup-name/tasks - CGv2:
/sys/fs/cgroup/cgroup-name/cgroup.procs
exclusive path in CGv2 has changed, for example:
- CGv1:
/sys/fs/cgroup/cpuset/cgroup-name/cpuset.cpu_exclusive(integer) - CGv2:
/sys/fs/cgroup/cgroup-name/cpuset.cpus.partition(enum;root,member)