51 ReservedSpace::ReservedSpace() : _base(NULL), _size(0), _noaccess_prefix(0), |
51 ReservedSpace::ReservedSpace() : _base(NULL), _size(0), _noaccess_prefix(0), |
52 _alignment(0), _special(false), _executable(false) { |
52 _alignment(0), _special(false), _executable(false) { |
53 } |
53 } |
54 |
54 |
55 ReservedSpace::ReservedSpace(size_t size) { |
55 ReservedSpace::ReservedSpace(size_t size) { |
56 size_t page_size = os::page_size_for_region(size, 1); |
56 size_t page_size = os::page_size_for_region(size, size, 1); |
57 bool large_pages = page_size != (size_t)os::vm_page_size(); |
57 bool large_pages = page_size != (size_t)os::vm_page_size(); |
58 // Don't force the alignment to be large page aligned, |
58 // Don't force the alignment to be large page aligned, |
59 // since that will waste memory. |
59 // since that will waste memory. |
60 size_t alignment = os::vm_allocation_granularity(); |
60 size_t alignment = os::vm_allocation_granularity(); |
61 initialize(size, alignment, large_pages, NULL, 0, false); |
61 initialize(size, alignment, large_pages, NULL, 0, false); |
370 _executable = false; |
370 _executable = false; |
371 } |
371 } |
372 |
372 |
373 |
373 |
374 bool VirtualSpace::initialize(ReservedSpace rs, size_t committed_size) { |
374 bool VirtualSpace::initialize(ReservedSpace rs, size_t committed_size) { |
375 const size_t max_commit_granularity = os::page_size_for_region(rs.size(), 1); |
375 const size_t max_commit_granularity = os::page_size_for_region(rs.size(), rs.size(), 1); |
376 return initialize_with_granularity(rs, committed_size, max_commit_granularity); |
376 return initialize_with_granularity(rs, committed_size, max_commit_granularity); |
377 } |
377 } |
378 |
378 |
379 bool VirtualSpace::initialize_with_granularity(ReservedSpace rs, size_t committed_size, size_t max_commit_granularity) { |
379 bool VirtualSpace::initialize_with_granularity(ReservedSpace rs, size_t committed_size, size_t max_commit_granularity) { |
380 if(!rs.is_reserved()) return false; // allocation failed. |
380 if(!rs.is_reserved()) return false; // allocation failed. |
1005 case Reserve: |
1005 case Reserve: |
1006 return vs.initialize(rs, 0); |
1006 return vs.initialize(rs, 0); |
1007 case Disable: |
1007 case Disable: |
1008 return vs.initialize_with_granularity(rs, 0, os::vm_page_size()); |
1008 return vs.initialize_with_granularity(rs, 0, os::vm_page_size()); |
1009 case Commit: |
1009 case Commit: |
1010 return vs.initialize_with_granularity(rs, 0, os::page_size_for_region(rs.size(), 1)); |
1010 return vs.initialize_with_granularity(rs, 0, os::page_size_for_region(rs.size(), rs.size(), 1)); |
1011 } |
1011 } |
1012 } |
1012 } |
1013 |
1013 |
1014 public: |
1014 public: |
1015 static void test_virtual_space_actual_committed_space(size_t reserve_size, size_t commit_size, |
1015 static void test_virtual_space_actual_committed_space(size_t reserve_size, size_t commit_size, |