src/share/vm/memory/universe.cpp

Print this page




 855          os::vm_page_size()) ||
 856          Universe::narrow_oop_base() == NULL, "invalid value");
 857   assert(Universe::narrow_oop_shift() == LogMinObjAlignmentInBytes ||
 858          Universe::narrow_oop_shift() == 0, "invalid value");
 859 #endif
 860 
 861   // We will never reach the CATCH below since Exceptions::_throw will cause
 862   // the VM to exit if an exception is thrown during initialization
 863 
 864   if (UseTLAB) {
 865     assert(Universe::heap()->supports_tlab_allocation(),
 866            "Should support thread-local allocation buffers");
 867     ThreadLocalAllocBuffer::startup_initialization();
 868   }
 869   return JNI_OK;
 870 }
 871 
 872 
 873 // Reserve the Java heap, which is now the same for all GCs.
 874 ReservedSpace Universe::reserve_heap(size_t heap_size, size_t alignment) {



 875   size_t total_reserved = align_size_up(heap_size, alignment);
 876   assert(!UseCompressedOops || (total_reserved <= (OopEncodingHeapMax - os::vm_page_size())),
 877       "heap size is too big for compressed oops");
 878 
 879   bool use_large_pages = UseLargePages && is_size_aligned(alignment, os::large_page_size());
 880   assert(!UseLargePages
 881       || UseParallelOldGC
 882       || use_large_pages, "Wrong alignment to use large pages");
 883 
 884   char* addr = Universe::preferred_heap_base(total_reserved, alignment, Universe::UnscaledNarrowOop);
 885 
 886   ReservedHeapSpace total_rs(total_reserved, alignment, use_large_pages, addr);
 887 
 888   if (UseCompressedOops) {
 889     if (addr != NULL && !total_rs.is_reserved()) {
 890       // Failed to reserve at specified address - the requested memory
 891       // region is taken already, for example, by 'java' launcher.
 892       // Try again to reserver heap higher.
 893       addr = Universe::preferred_heap_base(total_reserved, alignment, Universe::ZeroBasedNarrowOop);
 894 




 855          os::vm_page_size()) ||
 856          Universe::narrow_oop_base() == NULL, "invalid value");
 857   assert(Universe::narrow_oop_shift() == LogMinObjAlignmentInBytes ||
 858          Universe::narrow_oop_shift() == 0, "invalid value");
 859 #endif
 860 
 861   // We will never reach the CATCH below since Exceptions::_throw will cause
 862   // the VM to exit if an exception is thrown during initialization
 863 
 864   if (UseTLAB) {
 865     assert(Universe::heap()->supports_tlab_allocation(),
 866            "Should support thread-local allocation buffers");
 867     ThreadLocalAllocBuffer::startup_initialization();
 868   }
 869   return JNI_OK;
 870 }
 871 
 872 
 873 // Reserve the Java heap, which is now the same for all GCs.
 874 ReservedSpace Universe::reserve_heap(size_t heap_size, size_t alignment) {
 875   assert(alignment <= Arguments::conservative_max_heap_alignment(),
 876       err_msg("actual alignment "SIZE_FORMAT" must be within maximum heap alignment "SIZE_FORMAT,
 877           alignment, Arguments::conservative_max_heap_alignment()));
 878   size_t total_reserved = align_size_up(heap_size, alignment);
 879   assert(!UseCompressedOops || (total_reserved <= (OopEncodingHeapMax - os::vm_page_size())),
 880       "heap size is too big for compressed oops");
 881 
 882   bool use_large_pages = UseLargePages && is_size_aligned(alignment, os::large_page_size());
 883   assert(!UseLargePages
 884       || UseParallelOldGC
 885       || use_large_pages, "Wrong alignment to use large pages");
 886 
 887   char* addr = Universe::preferred_heap_base(total_reserved, alignment, Universe::UnscaledNarrowOop);
 888 
 889   ReservedHeapSpace total_rs(total_reserved, alignment, use_large_pages, addr);
 890 
 891   if (UseCompressedOops) {
 892     if (addr != NULL && !total_rs.is_reserved()) {
 893       // Failed to reserve at specified address - the requested memory
 894       // region is taken already, for example, by 'java' launcher.
 895       // Try again to reserver heap higher.
 896       addr = Universe::preferred_heap_base(total_reserved, alignment, Universe::ZeroBasedNarrowOop);
 897