equal
deleted
inserted
replaced
714 VirtualSpaceList* vsl = new VirtualSpaceList("class space list", rs, CommitLimiter::globalLimiter()); |
714 VirtualSpaceList* vsl = new VirtualSpaceList("class space list", rs, CommitLimiter::globalLimiter()); |
715 VirtualSpaceList::set_vslist_class(vsl); |
715 VirtualSpaceList::set_vslist_class(vsl); |
716 ChunkManager* cm = new ChunkManager("class space chunk manager", vsl); |
716 ChunkManager* cm = new ChunkManager("class space chunk manager", vsl); |
717 ChunkManager::set_chunkmanager_class(cm); |
717 ChunkManager::set_chunkmanager_class(cm); |
718 |
718 |
|
719 if (metaspace::Settings::separate_micro_cld_allocations()) { |
|
720 ChunkManager* cm2 = new ChunkManager("microcld class space chunk manager", vsl); |
|
721 ChunkManager::set_chunkmanager_microclds_class(cm2); |
|
722 } |
719 } |
723 } |
720 |
724 |
721 |
725 |
722 void Metaspace::print_compressed_class_space(outputStream* st, const char* requested_addr) { |
726 void Metaspace::print_compressed_class_space(outputStream* st, const char* requested_addr) { |
723 st->print_cr("Narrow klass base: " PTR_FORMAT ", Narrow klass shift: %d", |
727 st->print_cr("Narrow klass base: " PTR_FORMAT ", Narrow klass shift: %d", |
735 #endif |
739 #endif |
736 |
740 |
737 void Metaspace::ergo_initialize() { |
741 void Metaspace::ergo_initialize() { |
738 |
742 |
739 // Must happen before using any setting from Settings::--- |
743 // Must happen before using any setting from Settings::--- |
740 metaspace::Settings::strategy_t strat = metaspace::Settings::strategy_balanced_reclaim; |
744 metaspace::Settings::ergo_initialize(); |
741 if (strcmp(MetaspaceReclaimStrategy, "balanced") == 0) { |
|
742 strat = metaspace::Settings::strategy_balanced_reclaim; |
|
743 } else if (strcmp(MetaspaceReclaimStrategy, "aggressive") == 0) { |
|
744 strat = metaspace::Settings::strategy_aggressive_reclaim; |
|
745 } else if (strcmp(MetaspaceReclaimStrategy, "none") == 0) { |
|
746 strat = metaspace::Settings::strategy_no_reclaim; |
|
747 } else { |
|
748 vm_exit_during_initialization("Invalid value for MetaspaceReclaimStrategy: \"%s\".", MetaspaceReclaimStrategy); |
|
749 } |
|
750 metaspace::Settings::initialize(strat); |
|
751 |
745 |
752 if (DumpSharedSpaces) { |
746 if (DumpSharedSpaces) { |
753 // Using large pages when dumping the shared archive is currently not implemented. |
747 // Using large pages when dumping the shared archive is currently not implemented. |
754 FLAG_SET_ERGO(UseLargePagesInMetaspace, false); |
748 FLAG_SET_ERGO(UseLargePagesInMetaspace, false); |
755 } |
749 } |
838 } |
832 } |
839 #endif // _LP64 |
833 #endif // _LP64 |
840 } |
834 } |
841 |
835 |
842 // Initialize non-class virtual space list, and its chunk manager: |
836 // Initialize non-class virtual space list, and its chunk manager: |
843 VirtualSpaceList* vsl = new VirtualSpaceList("Non-Class VirtualSpaceList", CommitLimiter::globalLimiter()); |
837 VirtualSpaceList* vsl = new VirtualSpaceList("non-class virtualspacelist", CommitLimiter::globalLimiter()); |
844 VirtualSpaceList::set_vslist_nonclass(vsl); |
838 VirtualSpaceList::set_vslist_nonclass(vsl); |
845 ChunkManager* cm = new ChunkManager("Non-Class ChunkManager", vsl); |
839 ChunkManager* cm = new ChunkManager("non-class chunkmanager", vsl); |
846 ChunkManager::set_chunkmanager_nonclass(cm); |
840 ChunkManager::set_chunkmanager_nonclass(cm); |
|
841 |
|
842 if (metaspace::Settings::separate_micro_cld_allocations()) { |
|
843 ChunkManager* cm2 = new ChunkManager("microcld non-class chunk manager", vsl); |
|
844 ChunkManager::set_chunkmanager_microclds_nonclass(cm2); |
|
845 } |
847 |
846 |
848 _tracer = new MetaspaceTracer(); |
847 _tracer = new MetaspaceTracer(); |
849 |
848 |
850 _initialized = true; |
849 _initialized = true; |
851 |
850 |