hotspot/src/share/vm/runtime/virtualspace.cpp
changeset 30158 bd6094906ef8
parent 29580 a67a581cfe11
child 30166 a85188117643
equal deleted inserted replaced
30157:e36165b16dde 30158:bd6094906ef8
    35 // Dummy constructor
    35 // Dummy constructor
    36 ReservedSpace::ReservedSpace() : _base(NULL), _size(0), _noaccess_prefix(0),
    36 ReservedSpace::ReservedSpace() : _base(NULL), _size(0), _noaccess_prefix(0),
    37     _alignment(0), _special(false), _executable(false) {
    37     _alignment(0), _special(false), _executable(false) {
    38 }
    38 }
    39 
    39 
    40 ReservedSpace::ReservedSpace(size_t size) {
    40 ReservedSpace::ReservedSpace(size_t size, bool prefer_large_pages) {
    41   // Want to use large pages where possible and pad with small pages.
    41   // Want to use large pages where possible and pad with small pages.
    42   size_t page_size = os::page_size_for_region_unaligned(size, 1);
    42   size_t page_size = os::page_size_for_region_unaligned(size, 1);
    43   bool large_pages = page_size != (size_t)os::vm_page_size();
    43   bool large_pages = page_size != (size_t)os::vm_page_size();
    44   // Don't force the alignment to be large page aligned,
    44   size_t alignment;
    45   // since that will waste memory.
    45   if (large_pages && prefer_large_pages) {
    46   size_t alignment = os::vm_allocation_granularity();
    46     alignment = MAX2(page_size, (size_t)os::vm_allocation_granularity());
       
    47     // ReservedSpace initialization requires size to be aligned to the given
       
    48     // alignment. Align the size up.
       
    49     size = align_size_up(size, alignment);
       
    50   } else {
       
    51     // Don't force the alignment to be large page aligned,
       
    52     // since that will waste memory.
       
    53     alignment = os::vm_allocation_granularity();
       
    54   }
    47   initialize(size, alignment, large_pages, NULL, false);
    55   initialize(size, alignment, large_pages, NULL, false);
    48 }
    56 }
    49 
    57 
    50 ReservedSpace::ReservedSpace(size_t size, size_t alignment,
    58 ReservedSpace::ReservedSpace(size_t size, size_t alignment,
    51                              bool large,
    59                              bool large,