RFR (M/L): 8057003: Large reference arrays cause extremely long synchronization times

Thomas Schatzl thomas.schatzl at oracle.com
Fri Oct 28 13:09:10 UTC 2016

Hi all,

  I would like to have reviews for the following change that fixes long
synchronization times for G1 when marking large objArrays. We split
large objArrays into a header and a continuation, so that complete
processing of the entire array is not required before a GC pause can be

Also fixes most cases of mark stack overflows ("concurrent-mark-reset-
for-overflow") ultimately causing full gcs by not pushing the entire
objArray on the mark stack at once.

There is the enhancement, JDK-8168467, suggested in an internal review,
to change the type of the mark stack elements to "not an oop", as this
is not the case anymore - there may be continuations on it. I decided
to split this out because that change impacts a lot more places (the
entire mark stack handling) unrelated to this mechanism in the code.

jprt, various benchmarks, vm.gc, gc-nightly

This change alredy has its FC extension approved.


More information about the hotspot-gc-dev mailing list