RFR (S): Refactor concurrent mark to be more inlineable

Aleksey Shipilev shade at redhat.com
Tue Dec 20 17:08:31 UTC 2016


Hi,

I would like to refactor the concurrent mark to make it more inlineable, prepare
it for conc mark prefetch, etc:
  http://cr.openjdk.java.net/~shade/shenandoah/concmark-inline/webrev.01/

In that patch:
  a) Peeled concurrent_process_queues before the hot loop;
  b) Inlined try_* methods to call a very fat do_object_or_array once. It also
helps to pinpoint a single place where we get the tasks, so that future work on
buffering and prefetching would capitalize on this;
  c) Optimize SATB draining code: poll the local queue immediately after
draining SATB, do not do stealing which will bypass the local queue;
  d) Marked a few important closures "inline", and added headers where needed;

Testing: hs_gc_shenandoah, SPECjvm/Derby.

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list