Skip to content
This repository was archived by the owner on Sep 10, 2026. It is now read-only.
This repository was archived by the owner on Sep 10, 2026. It is now read-only.

Support for cgroupv2 #77

Description

@gmarkey

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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions