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() {