281 non_nmethod_size/K, min_code_cache_size/K)); |
281 non_nmethod_size/K, min_code_cache_size/K)); |
282 } |
282 } |
283 |
283 |
284 // Verify sizes and update flag values |
284 // Verify sizes and update flag values |
285 assert(non_profiled_size + profiled_size + non_nmethod_size == cache_size, "Invalid code heap sizes"); |
285 assert(non_profiled_size + profiled_size + non_nmethod_size == cache_size, "Invalid code heap sizes"); |
286 FLAG_SET_ERGO(uintx, NonNMethodCodeHeapSize, non_nmethod_size); |
286 FLAG_SET_ERGO(NonNMethodCodeHeapSize, non_nmethod_size); |
287 FLAG_SET_ERGO(uintx, ProfiledCodeHeapSize, profiled_size); |
287 FLAG_SET_ERGO(ProfiledCodeHeapSize, profiled_size); |
288 FLAG_SET_ERGO(uintx, NonProfiledCodeHeapSize, non_profiled_size); |
288 FLAG_SET_ERGO(NonProfiledCodeHeapSize, non_profiled_size); |
289 |
289 |
290 // If large page support is enabled, align code heaps according to large |
290 // If large page support is enabled, align code heaps according to large |
291 // page size to make sure that code cache is covered by large pages. |
291 // page size to make sure that code cache is covered by large pages. |
292 const size_t alignment = MAX2(page_size(false, 8), (size_t) os::vm_allocation_granularity()); |
292 const size_t alignment = MAX2(page_size(false, 8), (size_t) os::vm_allocation_granularity()); |
293 non_nmethod_size = align_up(non_nmethod_size, alignment); |
293 non_nmethod_size = align_up(non_nmethod_size, alignment); |
939 if (SegmentedCodeCache) { |
939 if (SegmentedCodeCache) { |
940 // Use multiple code heaps |
940 // Use multiple code heaps |
941 initialize_heaps(); |
941 initialize_heaps(); |
942 } else { |
942 } else { |
943 // Use a single code heap |
943 // Use a single code heap |
944 FLAG_SET_ERGO(uintx, NonNMethodCodeHeapSize, 0); |
944 FLAG_SET_ERGO(NonNMethodCodeHeapSize, 0); |
945 FLAG_SET_ERGO(uintx, ProfiledCodeHeapSize, 0); |
945 FLAG_SET_ERGO(ProfiledCodeHeapSize, 0); |
946 FLAG_SET_ERGO(uintx, NonProfiledCodeHeapSize, 0); |
946 FLAG_SET_ERGO(NonProfiledCodeHeapSize, 0); |
947 ReservedCodeSpace rs = reserve_heap_memory(ReservedCodeCacheSize); |
947 ReservedCodeSpace rs = reserve_heap_memory(ReservedCodeCacheSize); |
948 add_heap(rs, "CodeCache", CodeBlobType::All); |
948 add_heap(rs, "CodeCache", CodeBlobType::All); |
949 } |
949 } |
950 |
950 |
951 // Initialize ICache flush mechanism |
951 // Initialize ICache flush mechanism |