RFR: "Connected" should select bounded number of least connected regions

Aleksey Shipilev shade at redhat.com
Tue Aug 8 13:12:02 UTC 2017


Have been looking into why "connected" heuristics timeout our testing with GCOld test. It now takes
around 500 seconds to run, while the timeout is set to 480s. Other heuristics, including
LRU/Generational finish in under 120s.

The reason for that seems to be a naive cset selection in "connected" that could possibly sweep up
lots of regions, because each of those regions individually is lightly connected. So it seems better
to make "connected" do the similar thing LRU/Generational is doing: cap the number of regions to
consider. This requires sorting by connectedness to select the best candidates. It also makes sense
to lock the allocation threshold to the region cap, as LRU/Gen does.

See:
 http://cr.openjdk.java.net/~shade/shenandoah/partial-connected-sync/webrev.01/

With this change, the running time for GCOld under "connected" falls to ~120s, no testing timeouts
observed. The pure allocation tests seem to tell that "connected" now performs on par with LRU/Gen,
which is also a good sign.

Testing: hotspot_gc_shenandoah

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list