RFR: JDK-8087291: InitialBootClassLoaderMetaspaceSize and CompressedClassSpaceSize should be checked consistent from MaxMetaspaceSize

Yasumasa Suenaga yasuenag at gmail.com
Thu Jun 18 15:34:51 UTC 2015


Thank you for your comment!

> Try running a debug JVM with your patch with this command line.
> 
> java -XX:MaxMetaspaceSize=4195328 -version

Sorry, I've fixed it and uploaded webrev:
  http://cr.openjdk.java.net/~ysuenaga/JDK-8087291/webrev.02/

It works on fastdebug VM.
Please review again.


Thanks,

Yasumasa


On 2015/06/18 10:45, Jon Masamitsu wrote:
> Yasumasa,
> 
> Try running a debug JVM with your patch with this command line.
> 
> java -XX:MaxMetaspaceSize=4195328 -version
> 
> On a linux system I get this when I build with your patch.
> 
>> java -XX:MaxMetaspaceSize=4195328 -version
>> # To suppress the following error report, specify this argument
>> # after -XX: or in .hotspotrc: SuppressErrorAt=/metaspace.cpp:2324
>> #
>> # A fatal error has been detected by the Java Runtime Environment:
>> #
>> #  Internal Error
>> (/export/jmasa/java/jdk9-gc-code_review/src/share/vm/memory/metaspace.cpp:2324),
>> pid=19099, tid=0x00007ff4b9b92700
>> #  assert(size > MediumChunk || size > ClassMediumChunk) failed: Not a
>> humongous chunk
>> #
> 
> 
> Jon
> 
> 
> On 6/17/2015 7:54 AM, Yasumasa Suenaga wrote:
>> I want to continue to discuss about CompressedClassSpace and MaxMetaspace in this (RFR) thread.
>>
>> http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2015-June/013873.html
>>>> Should I resize CompressedClassSpaceSize than to show error message?
>>> If you add slightly better heuristics for the setup of the CompressedClassSpaceSize flag, for example lowering the CompressedClassSpaceSize when MaxMetaspaceSize is set, then it might be less likely that you'll hit the OutOfMemoryError when the system is set up with strict overcommit settings.
>>
>> I've uploaded new webrev:
>> http://cr.openjdk.java.net/~ysuenaga/JDK-8087291/webrev.01/
>>
>> This patch checkes MaxMetaspaceSize, CompressedClassSpaceSize, and
>> InitialBootClassLoaderMetaspaceSize.
>>
>> I add to check CompressedClassSpaceSize in Arguments::set_use_compressed_klass_ptrs().
>> If InitialBootClassLoaderMetaspaceSize is greater than MaxMetaspaceSize,
>> VM will fail with error message.
>>
>> InitialBootClassLoaderMetaspaceSize will be set to MaxMetaspaceSize
>> when UseCompressedClassPointers is not set in Metaspace::ergo_initialize().
>>
>>
>> Thanks,
>>
>> Yasumasa
>>



More information about the hotspot-gc-dev mailing list