[PING] RFR: 8231111: Cgroups v2: Rework Metrics in java.base so as to recognize unified hierarchy

Severin Gehwolf sgehwolf at redhat.com
Fri Nov 29 09:05:01 UTC 2019


On Fri, 2019-11-15 at 17:51 +0100, Severin Gehwolf wrote:
> Hi,
> 
> Could I please get reviews of these core-libs, Linux-only, changes to
> the Metrics subsystem? This patch implements cgroupv2 support for
> Metrics which are currently cgroupv1-only. Fedora 31 switched to
> cgroupv2 by default so it's time to get OpenJDK recognize it.
> 
> Note that a couple of metrics are no longer supported with cgroupv2.
> Most notably (not an exhaustive list, though):
> 
> Metrics.getKernel*() family of methods.
> Metrics.getTcp*() family of methods.
> Metrics.getBlkIO*() family of methods.
> Metrics.isMemoryOOMKillEnabled()
> 
> A couple of open questions with regards to that:
> 
> 1)
> Most API docs of Metrics make no distiction between "unlimited" and
> "not supported", both returning -1 for longs, for example. This is a
> problem, because output of "java -XshowSettings:system -version" will
> not distinguish between unlimited and not supported metrics. Would it
> be acceptable to change the API to distinguish those cases so that
> LauncherHelper could display them appropriately?
> 
> 2)
> How should we deal with "not supported" for booleans/arrays, etc.?
> Would it make sense to return record objects from the Metrics API so
> that this could be dealt with? E.g.
> 
> Metrics m = ...
> MetricResult<int[]> result = m.getCpuSetCpus();
> switch(result.getType()) {
>    case NOT_SUPPORTED: /* do something */; break;
>    case SUPPORTED: int[] val = result.get(); break;
>    ...         
> }
> 
> I'm bringing this up, because the proposed patch doesn't deal with the
> above open questions as of yet. With that being said, it's mostly
> identical to the proposed hotspot changes in [1].
> 
> Bug: https://bugs.openjdk.java.net/browse/JDK-8231111
> webrev: http://cr.openjdk.java.net/~sgehwolf/webrevs/JDK-8231111/04/webrev/
> 
> Testing: jdk/submit and platform docker tests on Linux x86_64 (with
> hybrid hierarchy, docker/podman) and on Linux x86_64 with unified
> hierarchy (podman only).
> 
> Thoughts? Suggestions?

Ping?

> Thanks,
> Severin
> 
> [1] http://mail.openjdk.java.net/pipermail/hotspot-dev/2019-November/039909.html



More information about the core-libs-dev mailing list