1905 const size_t total_reserved = max_byte_size + pgs->max_size(); |
1905 const size_t total_reserved = max_byte_size + pgs->max_size(); |
1906 char* addr = Universe::preferred_heap_base(total_reserved, Universe::UnscaledNarrowOop); |
1906 char* addr = Universe::preferred_heap_base(total_reserved, Universe::UnscaledNarrowOop); |
1907 |
1907 |
1908 ReservedSpace heap_rs(max_byte_size + pgs->max_size(), |
1908 ReservedSpace heap_rs(max_byte_size + pgs->max_size(), |
1909 HeapRegion::GrainBytes, |
1909 HeapRegion::GrainBytes, |
1910 false /*ism*/, addr); |
1910 UseLargePages, addr); |
1911 |
1911 |
1912 if (UseCompressedOops) { |
1912 if (UseCompressedOops) { |
1913 if (addr != NULL && !heap_rs.is_reserved()) { |
1913 if (addr != NULL && !heap_rs.is_reserved()) { |
1914 // Failed to reserve at specified address - the requested memory |
1914 // Failed to reserve at specified address - the requested memory |
1915 // region is taken already, for example, by 'java' launcher. |
1915 // region is taken already, for example, by 'java' launcher. |
1916 // Try again to reserver heap higher. |
1916 // Try again to reserver heap higher. |
1917 addr = Universe::preferred_heap_base(total_reserved, Universe::ZeroBasedNarrowOop); |
1917 addr = Universe::preferred_heap_base(total_reserved, Universe::ZeroBasedNarrowOop); |
1918 ReservedSpace heap_rs0(total_reserved, HeapRegion::GrainBytes, |
1918 ReservedSpace heap_rs0(total_reserved, HeapRegion::GrainBytes, |
1919 false /*ism*/, addr); |
1919 UseLargePages, addr); |
1920 if (addr != NULL && !heap_rs0.is_reserved()) { |
1920 if (addr != NULL && !heap_rs0.is_reserved()) { |
1921 // Failed to reserve at specified address again - give up. |
1921 // Failed to reserve at specified address again - give up. |
1922 addr = Universe::preferred_heap_base(total_reserved, Universe::HeapBasedNarrowOop); |
1922 addr = Universe::preferred_heap_base(total_reserved, Universe::HeapBasedNarrowOop); |
1923 assert(addr == NULL, ""); |
1923 assert(addr == NULL, ""); |
1924 ReservedSpace heap_rs1(total_reserved, HeapRegion::GrainBytes, |
1924 ReservedSpace heap_rs1(total_reserved, HeapRegion::GrainBytes, |
1925 false /*ism*/, addr); |
1925 UseLargePages, addr); |
1926 heap_rs = heap_rs1; |
1926 heap_rs = heap_rs1; |
1927 } else { |
1927 } else { |
1928 heap_rs = heap_rs0; |
1928 heap_rs = heap_rs0; |
1929 } |
1929 } |
1930 } |
1930 } |