[jdk8u-dev] RFR: 8230305: Cgroups v2: Container awareness [v2]
Poonam Bajaj
poonam at openjdk.org
Fri Oct 7 18:15:27 UTC 2022
On Wed, 5 Oct 2022 08:26:01 GMT, Jonathan Dowland <jdowland at openjdk.org> wrote:
>> This is a backport of 8230305 (Cgroups v2: Container awareness) for JDK8u, working from the jdk11u-dev backport as part of an effort to backport cgroups v2 to jdk8u-dev.
>>
>> The patch does not apply clean after unshuffling and path fixing:
>>
>> * mostly copyright line issues
>> * different package name for jdk.test.lib.process.OutputAnalyzer
>> * Most of hotspot/src/os/linux/vm/cgroupSubsystem_linux.cpp failed due to context changes, manually resolved (mostly deletions)
>>
>> A few other changes were made
>>
>> * Rework use of newer logging API (log_debug etc) to use guarded tty->print_cr
>> * replace os::strerror with the libc strerror (which is thread unsafe, but that should be addressed by backporting 8148425 separately)
>>
>> patch touched hotspot/test/runtime/containers/docker/TestCPUAwareness.java which passes afterwards; I'm running further tests now (and awaiting GitHub CI doing the same)
>
> Jonathan Dowland 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 three additional commits since the last revision:
>
> - substitute os::strerror for strerror
>
> os::strerror was introduced in 8148425 (strerror() function is not
> thread-safe), which is probably out of scope for backporting (at least
> as part of this cgroups v2 effort). Replace uses of os::strerror with
> (thread unsafe) strerror, in common with the rest of JDK8u.
> - Rework use of newer logging API to tty->print_cr
>
> Remove includes of log.hpp that doesn't exist in jdk8u
>
> log_(debug|trace) to tty->print_cr guarded by PrintContainerInfo
> - 8230305: Cgroups v2: Container awareness
>
> Implement Cgroups v2 container awareness in hotspot
>
> Reviewed-by: bobv, dholmes
hotspot/src/os/linux/vm/cgroupV1Subsystem_linux.hpp line 103:
> 101: CgroupV1Controller* _cpuset = NULL;
> 102: CachingCgroupController* _cpu = NULL;
> 103: CgroupV1Controller* _cpuacct = NULL;
For arm32 platform, if the c++ compiler version being used is earlier than 11, then the non-static member initialization will cause compilation failure.
-------------
PR: https://git.openjdk.org/jdk8u-dev/pull/127
More information about the jdk8u-dev
mailing list