src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp

changeset 2455
2e0b0c4671e4
parent 2454
b158bed62ef5
child 2457
ffd725ff6943
equal deleted inserted replaced
2454:b158bed62ef5 2455:2e0b0c4671e4
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 }

mercurial