RFR (M): Generic mark loop
Aleksey Shipilev
shade at redhat.com
Fri Feb 10 15:42:04 UTC 2017
Hi,
Changing mark loop is gruesome, because we have at least two versions of it,
plus the horrible translation blocks that fit marking template parameters. This
is the attempt at making the generic mark loop:
http://cr.openjdk.java.net/~shade/shenandoah/generic-mark-loop/webrev.03/
Tour of changes:
*) Merged concurrent_mark_loop, final_mark_loop, and concurrent_process_queues.
*) Introduced SCM::mark_loop that accepts boolean parameters, and then slides
into the one of the templated mark_loop_work versions.
*) Collapsed ShenandoahMarkObjsClosure to SCM methods, rehashed templates.
I see no significant difference in marking times. The compiled code still looks
profitably inlined. The next step would be trying to collapse the remaining four
MetadataAwareClosures into a templated one, and hook them up into new template
params.
Testing: hotspot_gc_shenandoah, jcstress -m quick, benchmarks
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list