RFR: Use PLAB for evacuations instead of TLAB

Roman Kennke rkennke at redhat.com
Thu May 10 15:43:37 UTC 2018


Am 10.05.2018 um 16:28 schrieb Aleksey Shipilev:
> On 05/09/2018 11:19 PM, Roman Kennke wrote:
>> Diff:
>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02.diff/
>> Full:
>> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02/
> 
> Looks like a nice cleanup.
> 
> *) Seems that plab.* files exist only starting JDK 9. This would pose some problems with
> backporting, but it looks resolvable.

We could put the plab.* stuff under shenandoah/

> *) Break this line, and use template parameter instead of cast?
> 
>   47   AlignmentReserve = oopDesc::header_size() > MinObjAlignment ?
>              align_object_size(MAX2<size_t>(arrayOopDesc::header_size(T_INT), min_align_reserve)) :
>              0;

Ok, done.

> *) There is a commented block, do we need it?

Not really. Removed it.


> *) What is the reason for moving this block out of mark-compact?
> 
>  229     if (UseTLAB) {
>  230       ShenandoahGCPhase phase(ShenandoahPhaseTimings::full_gc_resize_tlabs);
>  231       heap->resize_all_tlabs();
>  232     }

resize_all_tlabs() is protected in CH. The alternative would be to
override it and make it public. Whatever you prefer?

Diff:
http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03.diff/
Full:
http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.03/


Roman



More information about the shenandoah-dev mailing list