Mercurial > hg > graal-jvmci-8
comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 2135:2e0b0c4671e4
6941122: G1: UseLargePages does not work with G1 garbage collector
Summary: Pass the value of UseLargePages instead of false as the "large" parameter when reserving the G1 heap.
Reviewed-by: tonyp, johnc, phh
author | brutisso |
---|---|
date | Thu, 13 Jan 2011 04:43:30 -0800 |
parents | b158bed62ef5 |
children | ffd725ff6943 |
comparison
equal
deleted
inserted
replaced
2134:b158bed62ef5 | 2135: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 } |