--- old/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/Metrics.java 2019-03-11 10:58:24.759554675 -0400 +++ new/src/java.base/linux/classes/jdk/internal/platform/cgroupv1/Metrics.java 2019-03-11 10:58:23.962508179 -0400 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -128,9 +128,9 @@ if (mountentry.length < 5) return; Path p = Paths.get(mountentry[4]); - String subsystemName = p.getFileName().toString(); + String []subsystemNames = p.getFileName().toString().split(","); - if (subsystemName != null) { + for (String subsystemName: subsystemNames) { switch (subsystemName) { case "memory": metric.setMemorySubSystem(new SubSystem(mountentry[3], mountentry[4])); @@ -138,11 +138,6 @@ case "cpuset": metric.setCpuSetSubSystem(new SubSystem(mountentry[3], mountentry[4])); break; - case "cpu,cpuacct": - case "cpuacct,cpu": - metric.setCpuSubSystem(new SubSystem(mountentry[3], mountentry[4])); - metric.setCpuAcctSubSystem(new SubSystem(mountentry[3], mountentry[4])); - break; case "cpuacct": metric.setCpuAcctSubSystem(new SubSystem(mountentry[3], mountentry[4])); break; @@ -298,15 +293,15 @@ public long getCpuPeriod() { - return SubSystem.getLongValue(cpuacct, "cpu.cfs_period_us"); + return SubSystem.getLongValue(cpu, "cpu.cfs_period_us"); } public long getCpuQuota() { - return SubSystem.getLongValue(cpuacct, "cpu.cfs_quota_us"); + return SubSystem.getLongValue(cpu, "cpu.cfs_quota_us"); } public long getCpuShares() { - long retval = SubSystem.getLongValue(cpuacct, "cpu.shares"); + long retval = SubSystem.getLongValue(cpu, "cpu.shares"); if (retval == 0 || retval == 1024) return -1; else @@ -314,15 +309,15 @@ } public long getCpuNumPeriods() { - return SubSystem.getLongEntry(cpuacct, "cpu.stat", "nr_periods"); + return SubSystem.getLongEntry(cpu, "cpu.stat", "nr_periods"); } public long getCpuNumThrottled() { - return SubSystem.getLongEntry(cpuacct, "cpu.stat", "nr_throttled"); + return SubSystem.getLongEntry(cpu, "cpu.stat", "nr_throttled"); } public long getCpuThrottledTime() { - return SubSystem.getLongEntry(cpuacct, "cpu.stat", "throttled_time"); + return SubSystem.getLongEntry(cpu, "cpu.stat", "throttled_time"); } public long getEffectiveCpuCount() {