< prev index next >
src/share/vm/memory/metaspace.cpp
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 3133,3142 ****
--- 3133,3160 ----
MinMetaspaceExpansion = align_size_down_bounded(MinMetaspaceExpansion, _commit_alignment);
MaxMetaspaceExpansion = align_size_down_bounded(MaxMetaspaceExpansion, _commit_alignment);
CompressedClassSpaceSize = align_size_down_bounded(CompressedClassSpaceSize, _reserve_alignment);
set_compressed_class_space_size(CompressedClassSpaceSize);
+
+ // Initial virtual space size will be calculated at global_initialize()
+ uintx min_metaspace_sz =
+ VIRTUALSPACEMULTIPLIER * InitialBootClassLoaderMetaspaceSize;
+ if (UseCompressedClassPointers) {
+ if ((min_metaspace_sz + CompressedClassSpaceSize) > MaxMetaspaceSize) {
+ if (min_metaspace_sz >= MaxMetaspaceSize) {
+ vm_exit_during_initialization("MaxMetaspaceSize is too small.");
+ } else {
+ FLAG_SET_ERGO(uintx, CompressedClassSpaceSize,
+ MaxMetaspaceSize - min_metaspace_sz);
+ }
+ }
+ } else if (min_metaspace_sz >= MaxMetaspaceSize) {
+ FLAG_SET_ERGO(uintx, InitialBootClassLoaderMetaspaceSize,
+ min_metaspace_sz);
+ }
+
}
void Metaspace::global_initialize() {
MetaspaceGC::initialize();
< prev index next >