Review request (S) JDK-8004241 NPG: Metaspace occupies more memory than specified by -XX:MaxMetaspaceSize option
Jon Masamitsu
jon.masamitsu at oracle.com
Thu Mar 7 20:57:30 UTC 2013
On 03/07/13 00:54, Mikael Gerdin wrote:
> Hi
>
>
> When deciding when to reserve more metaspace memory we erroneously
> looked only at the "capacity" of the metaspace insted of the reserved
> space (which is what we ask this function when expanding).
Using MetaspaceAux::reserved_in_bytes() means that we
could return false here
1105 if (!FLAG_IS_DEFAULT(MaxMetaspaceSize)&&
1106 MetaspaceAux::reserved_in_bytes()>= MaxMetaspaceSize) {
1107 return false;
1108 }
when most of the space reserved in one or two VirtualSpace's is unused.
With the current value of parameters, that could almost be 512kb.
Jon
>
> Additionally, we didn't check MaxMetaspaceSize against the sum of
> reserved(Class) + reserved(NonClass) which caused us to use more than
> MaxMetaspaceSize even when it was set.
>
> Bug:
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004241
> (not yet available at the time of writing this mail)
>
> Webrev:
> http://cr.openjdk.java.net/~mgerdin/8004241/webrev.0
>
> Testing:
> JPRT with -XX:MaxMetaspaceSize set for all tests to exercise the code
> path.
More information about the hotspot-gc-dev
mailing list