RFR: Use PLAB for evacuations instead of TLAB
Zhengyu Gu
zgu at redhat.com
Wed May 9 23:24:19 UTC 2018
>
>> ShenandoahHeap.cpp L1499
>> Need scope block for
>> 1499 ShenandoahGCPhase phase(ShenandoahPhaseTimings::make_parsable);
>> 1500 make_tlabs_parsable(true);
>>
>> or should just keep UseTLAB test here to avoid misleading timing info,
>> in case of phase time > 0.
>
> We also need to always retire the GCLABs, regardless of UseTLABs, the
> test is moved into the retire_all_tlabs() code.
>
Ah, I missed changes in make_tlabs_parsable() :-(
-Zhengyu
> I also fixed some other issues that came up in more testing:
>
> A typo:
>
> - _collector_gclab_stats(new PLABStats("Shenandoah colletor GCLAB
> stats", YoungPLABSize, PLABWeight)),
> + _collector_gclab_stats(new PLABStats("Shenandoah collector GCLAB
> stats", YoungPLABSize, PLABWeight)),
>
>
> Added a call to
>
> + accumulate_statistics_all_gclabs();
>
> in op_init_updaterefs()
>
> This latter one is very important. I only used to do this in
> op_final_evac() but this is almost never called. We need it to get
> appropriately sized GCLABs.
>
> I ran some quick performance tests and nothing suspicious came up. Evac
> times are where they used to be. Will run comprehensive before/after
> comparison over night.
>
> Eyeballing -Xlog:gc+plab=debug looks reasonable to me:
>
> [164,441s][debug][gc,plab] GC(85) Shenandoah mutator GCLAB stats PLAB
> allocation: allocated: 1516008B, wasted: 72880B, unused: 486880B, used:
> 956248B, undo waste: 0B,
> [164,441s][debug][gc,plab] GC(85) Shenandoah mutator GCLAB stats sizing:
> calculated: 956248B, actual: 1271144B
> [164,441s][debug][gc,plab] GC(85) Shenandoah colletor GCLAB stats PLAB
> allocation: allocated: 182452224B, wasted: 357312B, unused: 9645144B,
> used: 172449768B, undo waste: 0B,
> [164,441s][debug][gc,plab] GC(85) Shenandoah colletor GCLAB stats
> sizing: calculated: 172449768B, actual: 199585872B
>
>
> This sizing looks about right.
>
> Diff:
> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02.diff/
> Full:
> http://cr.openjdk.java.net/~rkennke/plab-gclab/webrev.02/
>
More information about the shenandoah-dev
mailing list