RFR (XS): 8005108: NPG: MetaspaceAux::used_in_bytes(), capacity_in_bytes() and reserved_in_bytes() return inconsistent numbers

Stefan Karlsson stefan.karlsson at oracle.com
Tue Dec 18 12:06:23 UTC 2012


Updated the mail subject.

StefanK

On 12/18/2012 11:02 AM, Stefan Karlsson wrote:
> http://cr.openjdk.java.net/~stefank/8005108/webrev.00/
>
> Description from the bug:
> ---
> The implementation of MetaspaceAux::used_in_bytes(), 
> capacity_in_bytes() and reserved_in_bytes() changed as part of this 
> changeset:
>
> changeset: 3854:90273fc0a981
> user: coleenp
> date: Thu Nov 29 16:50:29 2012 -0500
> summary: 8000662: NPG: nashorn ant clean test262 out-of-memory with 
> Java heap
>
> Before this change it seems like data + classes = total. After this 
> does not seem to hold.
>
> This can be verified by running a simple test that does System.gc() 
> with -XX:+PrintHeapAtGC:
>
> Change 3853:
>
>  Metaspace total 3400K, used 2760K, reserved 108544K
>   data space 3076K, used 2477K, reserved 6144K
>   class space 324K, used 283K, reserved 102400
>
>
> Change 3854:
>
>  Metaspace total 3400K, used 3400K, reserved 108544K
>   data space 3076K, used 2476K, reserved 6144K
>   class space 324K, used 283K, reserved 102400K
>
> In this example capacity and reserved add up, but used does not. I 
> have seen cases where at least capacity also did not add up.
> ---
>
> This patch reverts back to the old implementation. We probably want a 
> better way to count these values, but right now we need consistent 
> numbers.
>
> StefanK




More information about the hotspot-gc-dev mailing list