< prev index next >
test/hotspot/jtreg/containers/docker/TestCPUAwareness.java
Print this page
@ rev 56576 : 8230305: Cgroups v2: Container awareness
| Summary: Implement Cgroups v2 container awareness in hotspot
~ Reviewed-by: bobv
*** 31,44 ****
--- 31,46 ----
* java.management
* jdk.jartool/sun.tools.jar
* @run driver TestCPUAwareness
*/
import java.util.List;
+ import java.util.Optional;
import jdk.test.lib.containers.docker.Common;
import jdk.test.lib.containers.docker.DockerRunOptions;
import jdk.test.lib.containers.docker.DockerTestUtils;
import jdk.test.lib.containers.cgroup.CPUSetsReader;
+ import jdk.test.lib.process.OutputAnalyzer;
public class TestCPUAwareness {
private static final String imageName = Common.imageName("cpu");
private static final int availableCPUs = Runtime.getRuntime().availableProcessors();
*** 200,209 ****
expectedAPC = adjustExpectedAPCForAvailableCPUs(expectedAPC);
DockerRunOptions opts = Common.newOpts(imageName)
.addDockerOpts("--cpu-shares=" + shares);
! Common.run(opts)
! .shouldMatch("CPU Shares is.*" + shares)
! .shouldMatch("active_processor_count.*" + expectedAPC);
}
}
--- 202,231 ----
expectedAPC = adjustExpectedAPCForAvailableCPUs(expectedAPC);
DockerRunOptions opts = Common.newOpts(imageName)
.addDockerOpts("--cpu-shares=" + shares);
! OutputAnalyzer out = Common.run(opts);
! String cgroupVer = getDetectedCgroupVersion(out);
! if (cgroupVer != null ) {
! if ("cgroupv1".equals(cgroupVer)) {
! out.shouldMatch("CPU Shares is.*" + shares);
! } else if ("cgroupsv2".equals(cgroupVer)) {
! out.shouldMatch("Scaled CPU Shares value is:.*");
! }
! }
! out.shouldMatch("active_processor_count.*" + expectedAPC);
! }
!
! private static String getDetectedCgroupVersion(OutputAnalyzer out) throws Exception {
! Optional<String> cgroupVersString = out.asLines()
! .stream()
! .filter( l -> l.startsWith("Detected CGroups version is:") )
! .findFirst();
! if (cgroupVersString.isPresent()) { // only non-product builds have this
! return cgroupVersString.get().split(": ")[1].trim();
! } else {
! return null;
}
+ }
+
}
< prev index next >