RFR: 8349988: Change cgroup version detection logic to not depend on /proc/cgroups

Severin Gehwolf sgehwolf at openjdk.org
Thu Feb 27 15:21:26 UTC 2025


On Wed, 26 Feb 2025 21:03:58 GMT, Thomas Fitzsimmons <duke at openjdk.org> wrote:

> This pull request fixes https://bugs.openjdk.org/browse/JDK-8349988 and https://bugs.openjdk.org/browse/JDK-8347811.
> 
> I tested it with:
> 
> 
> java -Xlog:os+container=trace -version
> 
> on:
> 
> `Red Hat Enterprise Linux 8 (cgroups v1 only)`:
> _No change in behaviour_
> 
> `Fedora 41 (cgroups v2)`:
> _More verbose output due to `/sys/fs/cgroup/cgroup.controllers` parsing:_
> 
> --- tt-old-f41.txt	2025-02-26 15:37:56.310738515 -0500
> +++ tt-new-f41.txt	2025-02-26 15:37:56.601739407 -0500
> @@ -1,7 +1,12 @@
>  [trace][os,container] OSContainer::init: Initializing Container Support
> -[debug][os,container] Detected optional pids controller entry in /proc/cgroups
> -[debug][os,container] controller cpuset is not enabled
> -                    ] 
> +[debug][os,container] v2 controller cpuset is enabled and relevant
> +[debug][os,container] v2 controller cpu is enabled and required
> +[debug][os,container] v2 controller io is enabled but not relevant
> +[debug][os,container] v2 controller memory is enabled and required
> +[debug][os,container] v2 controller hugetlb is enabled but not relevant
> +[debug][os,container] v2 controller pids is enabled and relevant
> +[debug][os,container] v2 controller rdma is enabled but not relevant
> +[debug][os,container] v2 controller misc is enabled but not relevant
>  [debug][os,container] Detected cgroups v2 unified hierarchy
>  [trace][os,container] Adjusting controller path for memory: /sys/fs/cgroup/user.slice/user-4215196.slice/user at 4215196.service/app.slice/app-org.gnome.Terminal.slice/vte-spawn-135086d6-2de4-4f2e-ad94-899b5eecaf83.scope
>  [trace][os,container] Path to /memory.max is /sys/fs/cgroup/user.slice/user-4215196.slice/user at 4215196.service/app.slice/app-org.gnome.Terminal.slice/vte-spawn-135086d6-2de4-4f2e-ad94-899b5eecaf83.scope/memory.max
> 
> 
> `Fedora 41 (custom kernel with cgroups v1 disabled)`:
> _Fixes `cgroups v2` detection:_
> 
> --- tt-old-f41-custom-kernel.txt	2025-02-26 15:37:58.197744304 -0500
> +++ tt-new-f41-custom-kernel.txt	2025-02-26 15:37:59.380747933 -0500
> @@ -1,7 +1,63 @@
>  [trace][os,container] OSContainer::init: Initializing Container Support
> -[debug][os,container] Detected optional pids controller entry in /proc/cgroups
> -[debug][os,container] controller cpuset is not enabled
> -                    ] 
> -[debug][os,container] controller memory is not enabled
> -                    ] 
> -[debug][os,container] One or more required controllers disabled at kernel level.
> +[debug][os,container] v2 controller cpuset is enabled and relevant
> +[debug][os,container] v2 contro...

@fitzsim Please use `/issue add JDK-8347811` since this PR is addressing them both (JDK-8349988 and JDK-8347811). That way both will get resolved when this PR integrates.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23811#issuecomment-2688118558


More information about the hotspot-dev mailing list