src/share/vm/memory/metaspace.cpp

changeset 9049
ac8450bdd81c
parent 9048
935cacbb8fab
child 9057
b0f7174de2c5
     1.1 --- a/src/share/vm/memory/metaspace.cpp	Tue Oct 31 20:29:34 2017 +0000
     1.2 +++ b/src/share/vm/memory/metaspace.cpp	Tue Oct 24 22:45:26 2017 +0900
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -3135,6 +3135,24 @@
    1.11  
    1.12    CompressedClassSpaceSize = align_size_down_bounded(CompressedClassSpaceSize, _reserve_alignment);
    1.13    set_compressed_class_space_size(CompressedClassSpaceSize);
    1.14 +
    1.15 +  // Initial virtual space size will be calculated at global_initialize()
    1.16 +  uintx min_metaspace_sz =
    1.17 +      VIRTUALSPACEMULTIPLIER * InitialBootClassLoaderMetaspaceSize;
    1.18 +  if (UseCompressedClassPointers) {
    1.19 +    if ((min_metaspace_sz + CompressedClassSpaceSize) >  MaxMetaspaceSize) {
    1.20 +      if (min_metaspace_sz >= MaxMetaspaceSize) {
    1.21 +        vm_exit_during_initialization("MaxMetaspaceSize is too small.");
    1.22 +      } else {
    1.23 +        FLAG_SET_ERGO(uintx, CompressedClassSpaceSize,
    1.24 +                      MaxMetaspaceSize - min_metaspace_sz);
    1.25 +      }
    1.26 +    }
    1.27 +  } else if (min_metaspace_sz >= MaxMetaspaceSize) {
    1.28 +    FLAG_SET_ERGO(uintx, InitialBootClassLoaderMetaspaceSize,
    1.29 +                  min_metaspace_sz);
    1.30 +  }
    1.31 +
    1.32  }
    1.33  
    1.34  void Metaspace::global_initialize() {

mercurial