RFR: 8343191: Cgroup v1 subsystem fails to set subsystem path [v3]
Sergey Chernyshev
schernyshev at openjdk.org
Tue Nov 12 23:33:33 UTC 2024
On Tue, 12 Nov 2024 19:41:50 GMT, Severin Gehwolf <sgehwolf at openjdk.org> wrote:
>> Sergey Chernyshev has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
>>
>> - Merge branch 'master' into JDK-8343191
>> - patch reimplemented
>> - fix the logic that skips duplicate controller's mount points
>> - 8343191: Cgroup v1 subsystem fails to set subsystem path
>
> src/java.base/linux/classes/jdk/internal/platform/cgroupv1/CgroupV1SubsystemController.java line 46:
>
>> 44: }
>> 45:
>> 46: public void setPath(String cgroupPath) {
>
> This should behave the same as Hotspot and also append the cgroup path to the mount point. Then let [JDK-8336881](https://bugs.openjdk.org/browse/JDK-8336881) kick in to reduce it down to the mount point (if necessary).
Correct. I double checked the behavior in cg v2:
sudo cgcreate -g memory:/test
sudo cgcreate -g memory:/test/test
sudo cgset -r memory.max=50m test
sudo cgset -r memory.swap.max=0 test
sudo cgset -r memory.max=100m test/test
sudo cgset -r memory.swap.max=0 test/test
with the above setup, allocations smaller than the outer group size will work, bigger will be oom-killed.
$ sudo cgexec -g memory:/test/test sh -c "head -c 45m /dev/zero | tail | wc -c"
47185920
$ sudo cgexec -g memory:/test/test sh -c "head -c 55m /dev/zero | tail | wc -c"
0
Killed
I'll update the PR next week.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21808#discussion_r1838979707
More information about the core-libs-dev
mailing list