src/hotspot/share/memory/metaspace.cpp
branchstuefe-new-metaspace-branch
changeset 58333 78b2e8f46dd4
parent 58069 ba98d1dccf30
child 58646 bcdba1c9f1fe
equal deleted inserted replaced
58228:6e61beb13680 58333:78b2e8f46dd4
   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