RFR 8207364: nsk/jvmti/ResourceExhausted/resexhausted003 fails to start

Daniil Titov daniil.x.titov at oracle.com
Thu Jul 26 00:38:13 UTC 2018


Hi Serguei,

On 64 bit machines Java fails to initialize a VM and prints " MaxMetaspaceSize is too small."  diagnostic  if the max metaspace size set to 8MB or less (java -XX:MaxMetaspaceSize=8m)

Per  open/src/hotspot/share/memory/metaspace.cpp (line 1140) and open/src/hotspot/share/runtime/globals.hpp (line 1059)  MaxMetaspaceSize  on 64 bit machines should be greater than 8MB.  Comparing it to the behavior of Java 8 it seems as these settings were increased since Java 8 where the metaspace size should be greater than 4MB only.  
  
cat -n open/src/hotspot/share/memory/metaspace.cpp

  880	
  881	#define VIRTUALSPACEMULTIPLIER 2
  882	

  1135	  // Initial virtual space size will be calculated at global_initialize()
  1136	  size_t min_metaspace_sz =
  1137	      VIRTUALSPACEMULTIPLIER * InitialBootClassLoaderMetaspaceSize;
  1138	  if (UseCompressedClassPointers) {
  1139	    if ((min_metaspace_sz + CompressedClassSpaceSize) >  MaxMetaspaceSize) {
  1140	      if (min_metaspace_sz >= MaxMetaspaceSize) {
  1141	        vm_exit_during_initialization("MaxMetaspaceSize is too small.");
  1142	      } else {
  1143	        FLAG_SET_ERGO(size_t, CompressedClassSpaceSize,
  1144	                      MaxMetaspaceSize - min_metaspace_sz);
  1145	      }
  1146	    }

cat -n open/src/hotspot/share/runtime/globals.hpp

1058	  product(size_t, InitialBootClassLoaderMetaspaceSize,                      \
  1059	          NOT_LP64(2200*K) LP64_ONLY(4*M),                                  \
  1060	          "Initial size of the boot class loader data metaspace")           \
  1061	          range(30*K, max_uintx/BytesPerWord)                               \
  1062	          constraint(InitialBootClassLoaderMetaspaceSizeConstraintFunc, AfterErgo)\


Best regards,
Daniil

On 7/25/18, 4:32 PM, "serguei.spitsyn at oracle.com" <serguei.spitsyn at oracle.com> wrote:

    Hi Daniil,
    
    It looks good to me.
    What is the need to increase the metaspace size?
    
    Thanks,
    Serguei
    
    
    On 7/25/18 16:11, Daniil Titov wrote:
    > Hello,
    >
    > Please review the change that fix the test issue. The fix increases the  metaspace size and corrects the path to the class files.
    >
    > Webrev: http://cr.openjdk.java.net/~dtitov/8207364/webrev.01/
    > Issue: https://bugs.openjdk.java.net/browse/JDK-8207364
    >
    > Thanks!
    >
    > Best regards,
    > Daniil
    >
    >
    >
    
    




More information about the serviceability-dev mailing list