[jdk8u-dev] RFR: 8230305: Cgroups v2: Container awareness [v6]

Jonathan Dowland jdowland at openjdk.org
Mon Oct 31 14:42:41 UTC 2022


> 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 21 additional commits since the last revision:

 - Remove C++11-style non-static member initialisation
   
   This causes issues with pre-C++11 compilers (of which jdk8u-dev
   ostensibly supports). Issue has materialised on ARM32.
   
   I haven't introduced initialiser lists to the constructor because
   all of these are assigned to in the body of the constructor.
 - Guard two more tty->print_cr with PrintContainerInfo
 - Whitespace and braces around PrintContainerInfo
 - 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
 - TestCgroupSubsystemController: rework use of Files.writeString
 - CgroupSubsystemController: fix library paths
   
   We need the testlibrary copy of FileUtils but the test.lib.util copy of
   Utils (method createTempDirectory is missing from the testlib copy)
 - TestCgroupSubsystemController: fix jtreg @library path
 - Replace Arrays.compare with Arrays.equals
   
   jdk8u does not have Arrays.compare()
 - ... and 11 more: https://git.openjdk.org/jdk8u-dev/compare/7afa1ea1...6947cdb7

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

Changes:
  - all: https://git.openjdk.org/jdk8u-dev/pull/127/files
  - new: https://git.openjdk.org/jdk8u-dev/pull/127/files/e6fcc668..6947cdb7

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk8u-dev&pr=127&range=05
 - incr: https://webrevs.openjdk.org/?repo=jdk8u-dev&pr=127&range=04-05

  Stats: 4905 lines in 66 files changed: 2659 ins; 1632 del; 614 mod
  Patch: https://git.openjdk.org/jdk8u-dev/pull/127.diff
  Fetch: git fetch https://git.openjdk.org/jdk8u-dev pull/127/head:pull/127

PR: https://git.openjdk.org/jdk8u-dev/pull/127


More information about the jdk8u-dev mailing list