[8u60] Bulk backport for eager reclaim of humongous objects

Kim Barrett kim.barrett at oracle.com
Wed Apr 29 17:22:35 UTC 2015


Please review these backports to fix / improve the eager reclaim of
humongous objects feature.

In addition to the backports listed below, we also plan to backport
the changeset for 8075215: "SATB buffer processing found reclaimed
humongous object", which is presently in review.  A separate backport
review request will be made for it, if needed.

The order of the changesets below is the order in which they are to be
applied.  The plan is to perform a block push of all of these
changesets, plus the in-development changes for 8075215.
 
Testing:
JPRT
local jtreg of hotspot/test/[closed/]{gc,runtime} with G1 as the collector

---------- 
8048179: Early reclaim of large objects that are referenced by a few objects

This change enables reclaim in more situations, and sets the stage for
the later backports. While this is an "enhancement" rather than a bug
fix, the backport was delayed pending progress on fixing bugs in the
already backported eager reclaim feature. This change makes those bugs
much easier to reproduce. The remaining backports in the series are to
address those bugs.

The JDK9 change did not apply cleanly to 8u60, so re-review is needed.

Merge issues in g1CollectedHeap.cpp to deal with JDK9 renamings such as
  HeapRegion::startsHumongous() => HeapRegion::is_starts_humongous()
  HeapRegion::isHumongous() => HeapRegion::is_humongous()
Merge issues in g1GCPhaseTimes.cpp.
Merge issues in heapRegionRemSet.hpp from not backported 8066102 fix.
Merge issues in TestGCLogMessages.java from not backported 8027962 fix.

CR:
https://bugs.openjdk.java.net/browse/JDK-8048179

Webrev:
http://cr.openjdk.java.net/~kbarrett/8u60-eager-reclaim/8048179/webrev.00/

Differences between JDK9 and JDK8 patches:
http://cr.openjdk.java.net/~kbarrett/8u60-eager-reclaim/8048179/8048179.9to8.00.txt

---------- 
8076265: Simplify deal_with_reference 

This changeset applied cleanly, so no additional review is needed.

CR:
https://bugs.openjdk.java.net/browse/JDK-8076265

Webrev:
http://cr.openjdk.java.net/~kbarrett/8u60-eager-reclaim/8076265/webrev.00/

---------- 
8069367: Eagerly reclaimed humongous objects left on mark stack

The JDK9 change did not apply cleanly to 8u60, so re-review is needed.

- Merge issue in g1CollectedHeap.[ch]pp to deal with JDK9 renamings.
- Test addition to TEST.groups required manual merge.
 
CR:
https://bugs.openjdk.java.net/browse/JDK-8069367

Webrev:
http://cr.openjdk.java.net/~kbarrett/8u60-eager-reclaim/8069367/webrev.00/

Differences between JDK9 and JDK8 patches:
http://cr.openjdk.java.net/~kbarrett/8u60-eager-reclaim/8069367/8069367.9to8.00.txt

---------- 
8075466: SATB queue pre-filter verify found reclaimed humongous object

The JDK9 change did not apply cleanly to 8u60, so re-review is needed. 

- Typo in string fixed by not backported 8026849 fix.

CR:
https://bugs.openjdk.java.net/browse/JDK-8075466

Webrev:
http://cr.openjdk.java.net/~kbarrett/8u60-eager-reclaim/8075466/webrev.00/

Differences between JDK9 and JDK8 patches:
http://cr.openjdk.java.net/~kbarrett/8u60-eager-reclaim/8075466/8075466.9to8.00.txt

---------- 
8078021: SATB apply_closure_to_completed_buffer should have closure argument

The JDK9 change did not apply cleanly to 8u60, so re-review is needed. 

- JDK8 contains special handling for ParallelGCThreads == 0, which has
  been removed from JDK9 - 6979279: remove special-case code for
  ParallelGCThreads=0. For the SATB code that special case was not
  actually interesting, and we can just use the new code.

CR:
https://bugs.openjdk.java.net/browse/JDK-8078021

Webrev:
http://cr.openjdk.java.net/~kbarrett/8u60-eager-reclaim/8078021/webrev.00/

Differences between JDK9 and JDK8 patches:
http://cr.openjdk.java.net/~kbarrett/8u60-eager-reclaim/8078021/8078021.9to8.00.txt

----------  
8078023: verify_no_cset_oops found reclaimed humongous object in SATB buffer

This changeset applied cleanly, so no additional review is needed.

CR:
https://bugs.openjdk.java.net/browse/JDK-8078023

Webrev:
http://cr.openjdk.java.net/~kbarrett/8u60-eager-reclaim/8078023/webrev.00/

---------- 

That's all, folks.



More information about the hotspot-gc-dev mailing list