RFR: 8287135: Calculation of jmm_GetMemoryUsage is wrong

Ioi Lam iklam at openjdk.java.net
Fri May 27 06:25:31 UTC 2022


On Fri, 27 May 2022 05:31:24 GMT, David Holmes <dholmes at openjdk.org> wrote:

> The basic problem is that we have two non-heap pools:
> 
> * `MetaspacePool`
>   
>   * consists of `ClassType` and `NonClassType` parts
> * `CompressedKlassSpacePool`
> 
> but the `CompressedKlassSpacePool` is actually the "ClassType" part of the `MetaspacePool`!
> 
> I think the right fix is to just convert the `MetaspacePool` into `NonClassMetaspacePool` and only report the non-class values.
> 
> AFAICS this will only be visible via the MXBean.

When CDS is enabled, the CompressedKlassSpacePool actually contains more than Klass objects. It can contain other metadata such as Method, ConstantPool, etc. So calling these pools "class" and "non-class" is not 100% correct.

Is there any reason for separating the CompressedKlassSpacePool from other metadata? I know in the past it was possible to run out of spaces in CompressedKlassSpace, so there might be a reason to monitor it separately?

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

PR: https://git.openjdk.java.net/jdk/pull/8831


More information about the serviceability-dev mailing list