src/hotspot/share/memory/metaspace.cpp
branchstuefe-new-metaspace-branch
changeset 58333 78b2e8f46dd4
parent 58069 ba98d1dccf30
child 58646 bcdba1c9f1fe
--- a/src/hotspot/share/memory/metaspace.cpp	Thu Sep 19 16:28:40 2019 +0200
+++ b/src/hotspot/share/memory/metaspace.cpp	Wed Sep 25 12:40:57 2019 +0200
@@ -716,6 +716,10 @@
   ChunkManager* cm = new ChunkManager("class space chunk manager", vsl);
   ChunkManager::set_chunkmanager_class(cm);
 
+  if (metaspace::Settings::separate_micro_cld_allocations()) {
+    ChunkManager* cm2 = new ChunkManager("microcld class space chunk manager", vsl);
+    ChunkManager::set_chunkmanager_microclds_class(cm2);
+  }
 }
 
 
@@ -737,17 +741,7 @@
 void Metaspace::ergo_initialize() {
 
   // Must happen before using any setting from Settings::---
-  metaspace::Settings::strategy_t strat = metaspace::Settings::strategy_balanced_reclaim;
-  if (strcmp(MetaspaceReclaimStrategy, "balanced") == 0) {
-    strat = metaspace::Settings::strategy_balanced_reclaim;
-  } else if (strcmp(MetaspaceReclaimStrategy, "aggressive") == 0) {
-    strat = metaspace::Settings::strategy_aggressive_reclaim;
-  } else if (strcmp(MetaspaceReclaimStrategy, "none") == 0) {
-    strat = metaspace::Settings::strategy_no_reclaim;
-  } else {
-    vm_exit_during_initialization("Invalid value for MetaspaceReclaimStrategy: \"%s\".", MetaspaceReclaimStrategy);
-  }
-  metaspace::Settings::initialize(strat);
+  metaspace::Settings::ergo_initialize();
 
   if (DumpSharedSpaces) {
     // Using large pages when dumping the shared archive is currently not implemented.
@@ -840,11 +834,16 @@
   }
 
   // Initialize non-class virtual space list, and its chunk manager:
-  VirtualSpaceList* vsl = new VirtualSpaceList("Non-Class VirtualSpaceList", CommitLimiter::globalLimiter());
+  VirtualSpaceList* vsl = new VirtualSpaceList("non-class virtualspacelist", CommitLimiter::globalLimiter());
   VirtualSpaceList::set_vslist_nonclass(vsl);
-  ChunkManager* cm = new ChunkManager("Non-Class ChunkManager", vsl);
+  ChunkManager* cm = new ChunkManager("non-class chunkmanager", vsl);
   ChunkManager::set_chunkmanager_nonclass(cm);
 
+  if (metaspace::Settings::separate_micro_cld_allocations()) {
+    ChunkManager* cm2 = new ChunkManager("microcld non-class chunk manager", vsl);
+    ChunkManager::set_chunkmanager_microclds_nonclass(cm2);
+  }
+
   _tracer = new MetaspaceTracer();
 
   _initialized = true;