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) { |
41 size_t page_size = os::page_size_for_region(size, size, 1); |
41 size_t page_size = os::page_size_for_region(size, 1); |
42 bool large_pages = page_size != (size_t)os::vm_page_size(); |
42 bool large_pages = page_size != (size_t)os::vm_page_size(); |
43 // Don't force the alignment to be large page aligned, |
43 // Don't force the alignment to be large page aligned, |
44 // since that will waste memory. |
44 // since that will waste memory. |
45 size_t alignment = os::vm_allocation_granularity(); |
45 size_t alignment = os::vm_allocation_granularity(); |
46 initialize(size, alignment, large_pages, NULL, 0, false); |
46 initialize(size, alignment, large_pages, NULL, 0, false); |
355 _executable = false; |
355 _executable = false; |
356 } |
356 } |
357 |
357 |
358 |
358 |
359 bool VirtualSpace::initialize(ReservedSpace rs, size_t committed_size) { |
359 bool VirtualSpace::initialize(ReservedSpace rs, size_t committed_size) { |
360 const size_t max_commit_granularity = os::page_size_for_region(rs.size(), rs.size(), 1); |
360 const size_t max_commit_granularity = os::page_size_for_region(rs.size(), 1); |
361 return initialize_with_granularity(rs, committed_size, max_commit_granularity); |
361 return initialize_with_granularity(rs, committed_size, max_commit_granularity); |
362 } |
362 } |
363 |
363 |
364 bool VirtualSpace::initialize_with_granularity(ReservedSpace rs, size_t committed_size, size_t max_commit_granularity) { |
364 bool VirtualSpace::initialize_with_granularity(ReservedSpace rs, size_t committed_size, size_t max_commit_granularity) { |
365 if(!rs.is_reserved()) return false; // allocation failed. |
365 if(!rs.is_reserved()) return false; // allocation failed. |
990 case Reserve: |
990 case Reserve: |
991 return vs.initialize(rs, 0); |
991 return vs.initialize(rs, 0); |
992 case Disable: |
992 case Disable: |
993 return vs.initialize_with_granularity(rs, 0, os::vm_page_size()); |
993 return vs.initialize_with_granularity(rs, 0, os::vm_page_size()); |
994 case Commit: |
994 case Commit: |
995 return vs.initialize_with_granularity(rs, 0, os::page_size_for_region(rs.size(), rs.size(), 1)); |
995 return vs.initialize_with_granularity(rs, 0, os::page_size_for_region(rs.size(), 1)); |
996 } |
996 } |
997 } |
997 } |
998 |
998 |
999 public: |
999 public: |
1000 static void test_virtual_space_actual_committed_space(size_t reserve_size, size_t commit_size, |
1000 static void test_virtual_space_actual_committed_space(size_t reserve_size, size_t commit_size, |