< prev index next >
src/java.base/linux/classes/jdk/internal/platform/cgroupv1/CgroupV1SubsystemController.java
Print this page
@ rev 57734 : Review feedback
|
o rev 57733 : 8231111: Cgroups v2: Rework Metrics in java.base so as to recognize unified hierarchy
| Reviewed-by: bobv, mchung
~
o rev 56862 : 8231111: Cgroups v2: Rework Metrics in java.base so as to recognize unified hierarchy
| Reviewed-by: bobv
~
@@ -23,15 +23,16 @@
* questions.
*/
package jdk.internal.platform.cgroupv1;
+import jdk.internal.platform.CgroupSubsystem;
import jdk.internal.platform.CgroupSubsystemController;
-import jdk.internal.platform.Metrics;
public class CgroupV1SubsystemController implements CgroupSubsystemController {
+ private static final double DOUBLE_RETVAL_UNLIMITED = CgroupSubsystem.LONG_RETVAL_UNLIMITED;
// Values returned larger than this number are unlimited.
static long UNLIMITED_MIN = 0x7FFFFFFFFF000000L;
String root;
String mountPoint;
String path;
@@ -70,13 +71,48 @@
@Override
public String path() {
return path;
}
+ public static long getLongEntry(CgroupSubsystemController controller, String param, String entryname) {
+ return CgroupSubsystemController.getLongEntry(controller,
+ param,
+ entryname,
+ CgroupSubsystem.LONG_RETVAL_UNLIMITED /* retval on error */);
+ }
+
+ public static double getDoubleValue(CgroupSubsystemController controller, String parm) {
+ return CgroupSubsystemController.getDoubleValue(controller,
+ parm,
+ DOUBLE_RETVAL_UNLIMITED /* retval on error */);
+ }
+
public static long convertStringToLong(String strval) {
- return CgroupSubsystemController.convertStringToLong(strval, Long.MAX_VALUE);
+ return CgroupSubsystemController.convertStringToLong(strval,
+ Long.MAX_VALUE /* overflow value */,
+ CgroupSubsystem.LONG_RETVAL_UNLIMITED /* retval on error */);
}
public static long longValOrUnlimited(long value) {
- return value > UNLIMITED_MIN ? Metrics.LONG_RETVAL_UNLIMITED : value;
+ return value > UNLIMITED_MIN ? CgroupSubsystem.LONG_RETVAL_UNLIMITED : value;
}
+
+ public static long getLongValueMatchingLine(CgroupSubsystemController controller,
+ String param,
+ String match) {
+ return CgroupSubsystemController.getLongValueMatchingLine(controller,
+ param,
+ match,
+ CgroupV1SubsystemController::convertHierachicalLimitLine,
+ CgroupSubsystem.LONG_RETVAL_UNLIMITED);
+ }
+
+ public static long convertHierachicalLimitLine(String line) {
+ String[] tokens = line.split("\\s");
+ if (tokens.length == 2) {
+ String strVal = tokens[1];
+ return CgroupV1SubsystemController.convertStringToLong(strVal);
+ }
+ return CgroupV1SubsystemController.UNLIMITED_MIN + 1; // unlimited
+ }
+
}
< prev index next >