122 _capacity(0), 123 _used(0), 124 _used_high(0), 125 _used_low(0), 126 _allocated(0), 127 _reclaimed(0), 128 _stalled(), 129 _satisfied(), 130 _safe_delete(), 131 _uncommit(false), 132 _initialized(false) { 133 134 if (!_virtual.is_initialized() || !_physical.is_initialized()) { 135 return; 136 } 137 138 log_info(gc, init)("Min Capacity: " SIZE_FORMAT "M", min_capacity / M); 139 log_info(gc, init)("Initial Capacity: " SIZE_FORMAT "M", initial_capacity / M); 140 log_info(gc, init)("Max Capacity: " SIZE_FORMAT "M", max_capacity / M); 141 log_info(gc, init)("Max Reserve: " SIZE_FORMAT "M", max_reserve / M); 142 log_info(gc, init)("Pre-touch: %s", AlwaysPreTouch ? "Enabled" : "Disabled"); 143 144 // Warn if system limits could stop us from reaching max capacity 145 _physical.warn_commit_limits(max_capacity); 146 147 // Check if uncommit should be enabled 148 _uncommit = _physical.should_enable_uncommit(min_capacity, max_capacity); 149 150 // Pre-map initial capacity 151 if (!prime_cache(workers, initial_capacity)) { 152 log_error(gc)("Failed to allocate initial Java heap (" SIZE_FORMAT "M)", initial_capacity / M); 153 return; 154 } 155 156 // Successfully initialized 157 _initialized = true; 158 } 159 160 class ZPreTouchTask : public ZTask { 161 private: | 122 _capacity(0), 123 _used(0), 124 _used_high(0), 125 _used_low(0), 126 _allocated(0), 127 _reclaimed(0), 128 _stalled(), 129 _satisfied(), 130 _safe_delete(), 131 _uncommit(false), 132 _initialized(false) { 133 134 if (!_virtual.is_initialized() || !_physical.is_initialized()) { 135 return; 136 } 137 138 log_info(gc, init)("Min Capacity: " SIZE_FORMAT "M", min_capacity / M); 139 log_info(gc, init)("Initial Capacity: " SIZE_FORMAT "M", initial_capacity / M); 140 log_info(gc, init)("Max Capacity: " SIZE_FORMAT "M", max_capacity / M); 141 log_info(gc, init)("Max Reserve: " SIZE_FORMAT "M", max_reserve / M); 142 if (ZPageSizeMedium > 0) { 143 log_info(gc, init)("Medium Page Size: " SIZE_FORMAT "M", ZPageSizeMedium / M); 144 } else { 145 log_info(gc, init)("Medium Page Size: N/A"); 146 } 147 log_info(gc, init)("Pre-touch: %s", AlwaysPreTouch ? "Enabled" : "Disabled"); 148 149 // Warn if system limits could stop us from reaching max capacity 150 _physical.warn_commit_limits(max_capacity); 151 152 // Check if uncommit should be enabled 153 _uncommit = _physical.should_enable_uncommit(min_capacity, max_capacity); 154 155 // Pre-map initial capacity 156 if (!prime_cache(workers, initial_capacity)) { 157 log_error(gc)("Failed to allocate initial Java heap (" SIZE_FORMAT "M)", initial_capacity / M); 158 return; 159 } 160 161 // Successfully initialized 162 _initialized = true; 163 } 164 165 class ZPreTouchTask : public ZTask { 166 private: |