JDK-8254739 : G1: Optimize evacuation failure for regions with few failed objects
  • Type: Sub-task
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 16
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2020-10-14
  • Updated: 2021-12-17
  • Resolved: 2021-11-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 18
18 b23Fixed
Related Reports
Blocks :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
Eacuation failure with pinned regions often leaves only regions with few live objects.

Optimize evacuation failure handling for such failed regions.

One option could be, until a certain threshold, track failed objects on a per object basis, then at fixup time use that list (after sorting) instead of walking all objects.
Comments
Changeset: ed7ecca4 Author: Hamlin Li <mli@openjdk.org> Date: 2021-11-05 23:24:45 +0000 URL: https://git.openjdk.java.net/jdk/commit/ed7ecca401e5f4c3c07dc98e05a21396c6cdf594
05-11-2021

TODOs left by JDK-8273626: https://github.com/openjdk/jdk/pull/5478#discussion_r724814701 https://github.com/openjdk/jdk/pull/5478#discussion_r724825707 https://github.com/openjdk/jdk/pull/5478#discussion_r727983658
14-10-2021

Thanks Thomas for testing and collecting the data.
06-09-2021

Attached a graph (20210902-remove-self-forwards-improvement.png) showing improvement on "Remove Self Forwards" (Preserve Marks is negligible) after this change for specjbb2015 with fixed IR = 6000, 16gb heap, G1EvacuationFailureALot enabled (other evac failure options untouched). That time decreases from 80-180ms to 4-5ms...
03-09-2021