# HG changeset patch # User tschatzl # Date 1409729047 -7200 # Node ID b1266b08b9946d67ea5d6c9e1daa63252beb4b7c # Parent 09e9e524071032e23e506902e92562c9386e98ea 8056043: Heap does not shrink within the heap after JDK-8038423 Summary: Enable shrinking within the heap by removing some code added for JDK-8054818. Enable the test case that checks that again too. Reviewed-by: jwilhelm, jmasa diff -r 09e9e5240710 -r b1266b08b994 src/share/vm/gc_implementation/g1/heapRegionManager.cpp --- a/src/share/vm/gc_implementation/g1/heapRegionManager.cpp Wed Sep 03 09:23:58 2014 +0200 +++ b/src/share/vm/gc_implementation/g1/heapRegionManager.cpp Wed Sep 03 09:24:07 2014 +0200 @@ -351,10 +351,6 @@ while ((removed < num_regions_to_remove) && (num_last_found = find_empty_from_idx_reverse(cur, &idx_last_found)) > 0) { - // Only allow uncommit from the end of the heap. - if ((idx_last_found + num_last_found) != _allocated_heapregions_length) { - return 0; - } uint to_remove = MIN2(num_regions_to_remove - removed, num_last_found); uncommit_regions(idx_last_found + num_last_found - to_remove, to_remove); diff -r 09e9e5240710 -r b1266b08b994 test/gc/g1/TestHumongousShrinkHeap.java --- a/test/gc/g1/TestHumongousShrinkHeap.java Wed Sep 03 09:23:58 2014 +0200 +++ b/test/gc/g1/TestHumongousShrinkHeap.java Wed Sep 03 09:24:07 2014 +0200 @@ -23,7 +23,7 @@ /** * @test TestHumongousShrinkHeap - * @bug 8036025 + * @bug 8036025 8056043 * @summary Verify that heap shrinks after GC in the presence of fragmentation due to humongous objects * @library /testlibrary * @run main/othervm -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=50 -XX:+UseG1GC -XX:G1HeapRegionSize=1M -verbose:gc TestHumongousShrinkHeap