RFR: Avoid indirection to next-mark-context

Aleksey Shipilev shade at redhat.com
Tue Jul 17 20:53:04 UTC 2018


On 07/17/2018 10:26 PM, Roman Kennke wrote:
> On top of the ShenandoahMarkingContext patch, this change avoids the
> extra indirection that we always need to take in hot marking path to get
> to the next-mark-bitmap and next-TAMS-structures. It does so by picking
> the next-marking-context at the beginning of the phase, and then keep it
> around in the closure.
> 
> Testing: tier3_gc_shenandoah ok
> 
> http://cr.openjdk.java.net/~rkennke/direct-marking/webrev.00/

Looks good. Does it actually help marking performance?

Stylistic:

 *) It seems odd that in these blocks two class members are on the same line:

  65   ShenandoahInitMarkRootsClosure(ShenandoahObjToScanQueue* q) :
  66     _queue(q), _heap(ShenandoahHeap::heap()),
  67     _mark_context(_heap->next_marking_context()) {};

...but here, they are split:


  73 ShenandoahMarkRefsSuperClosure::ShenandoahMarkRefsSuperClosure(...) :
  74   MetadataVisitingOopIterateClosure(rp),
  75   _queue(q),
  76   _heap(ShenandoahHeap::heap()),
  77   _mark_context(_heap->next_marking_context())
  78 { }

 Pick a style and stick to it?

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list