1505 1506 1507 // NOTE: set_use_compressed_klass_ptrs() must be called after calling 1508 // set_use_compressed_oops(). 1509 void Arguments::set_use_compressed_klass_ptrs() { 1510 #ifndef ZERO 1511 #ifdef _LP64 1512 // UseCompressedOops must be on for UseCompressedClassPointers to be on. 1513 if (!UseCompressedOops) { 1514 if (UseCompressedClassPointers) { 1515 warning("UseCompressedClassPointers requires UseCompressedOops"); 1516 } 1517 FLAG_SET_DEFAULT(UseCompressedClassPointers, false); 1518 } else { 1519 // Turn on UseCompressedClassPointers too 1520 if (FLAG_IS_DEFAULT(UseCompressedClassPointers)) { 1521 FLAG_SET_ERGO(bool, UseCompressedClassPointers, true); 1522 } 1523 // Check the CompressedClassSpaceSize to make sure we use compressed klass ptrs. 1524 if (UseCompressedClassPointers) { 1525 if (CompressedClassSpaceSize > KlassEncodingMetaspaceMax) { 1526 warning("CompressedClassSpaceSize is too large for UseCompressedClassPointers"); 1527 FLAG_SET_DEFAULT(UseCompressedClassPointers, false); 1528 } 1529 } 1530 } 1531 #endif // _LP64 1532 #endif // !ZERO 1533 } 1534 1535 void Arguments::set_conservative_max_heap_alignment() { 1536 // The conservative maximum required alignment for the heap is the maximum of 1537 // the alignments imposed by several sources: any requirements from the heap 1538 // itself, the collector policy and the maximum page size we may run the VM 1539 // with. 1540 size_t heap_alignment = GenCollectedHeap::conservative_max_heap_alignment(); 1541 #if INCLUDE_ALL_GCS 1542 if (UseParallelGC) { 1543 heap_alignment = ParallelScavengeHeap::conservative_max_heap_alignment(); 1544 } else if (UseG1GC) { | 1505 1506 1507 // NOTE: set_use_compressed_klass_ptrs() must be called after calling 1508 // set_use_compressed_oops(). 1509 void Arguments::set_use_compressed_klass_ptrs() { 1510 #ifndef ZERO 1511 #ifdef _LP64 1512 // UseCompressedOops must be on for UseCompressedClassPointers to be on. 1513 if (!UseCompressedOops) { 1514 if (UseCompressedClassPointers) { 1515 warning("UseCompressedClassPointers requires UseCompressedOops"); 1516 } 1517 FLAG_SET_DEFAULT(UseCompressedClassPointers, false); 1518 } else { 1519 // Turn on UseCompressedClassPointers too 1520 if (FLAG_IS_DEFAULT(UseCompressedClassPointers)) { 1521 FLAG_SET_ERGO(bool, UseCompressedClassPointers, true); 1522 } 1523 // Check the CompressedClassSpaceSize to make sure we use compressed klass ptrs. 1524 if (UseCompressedClassPointers) { 1525 size_t min_metaspace_sz = InitialBootClassLoaderMetaspaceSize + 1526 (64 * K * HeapWordSize); // MediumChunk in bytes. 1527 1528 if ((min_metaspace_sz + CompressedClassSpaceSize) > MaxMetaspaceSize) { 1529 if (min_metaspace_sz >= MaxMetaspaceSize) { 1530 vm_exit_during_initialization( 1531 "InitialBootClassLoaderMetaspaceSize should be " 1532 "less than MaxMetaspaceSize."); 1533 } else { 1534 FLAG_SET_ERGO(size_t, CompressedClassSpaceSize, 1535 MaxMetaspaceSize - min_metaspace_sz); 1536 } 1537 } 1538 1539 if (CompressedClassSpaceSize > KlassEncodingMetaspaceMax) { 1540 warning("CompressedClassSpaceSize is too large for UseCompressedClassPointers"); 1541 FLAG_SET_DEFAULT(UseCompressedClassPointers, false); 1542 } 1543 } 1544 } 1545 #endif // _LP64 1546 #endif // !ZERO 1547 } 1548 1549 void Arguments::set_conservative_max_heap_alignment() { 1550 // The conservative maximum required alignment for the heap is the maximum of 1551 // the alignments imposed by several sources: any requirements from the heap 1552 // itself, the collector policy and the maximum page size we may run the VM 1553 // with. 1554 size_t heap_alignment = GenCollectedHeap::conservative_max_heap_alignment(); 1555 #if INCLUDE_ALL_GCS 1556 if (UseParallelGC) { 1557 heap_alignment = ParallelScavengeHeap::conservative_max_heap_alignment(); 1558 } else if (UseG1GC) { |