RFR: Use PLABs for old gen allocations, including promotions. [v2]
Bernd Mathiske
bmathiske at openjdk.java.net
Wed Apr 21 20:37:35 UTC 2021
On Fri, 16 Apr 2021 17:00:23 GMT, bmathiske <github.com+44619194+bmathiske at openjdk.org> wrote:
>> src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp line 882:
>>
>>> 880: return plab->allocate(size);
>>> 881: }
>>> 882:
>>
>> Is this a full (or almost full) copy of allocate_from_gclab_slow() ? Maybe this warrants some refactoring/sharing?
>
> Yes, this is a full copy. Will refactor.
I tried to refactor: it quickly gets quite ugly. A lot of gclab values are hardwired into identifier names. For example, check out the upper part of allocate_from_gclab_slow()! How can we abstract over ShenandoahThreadLocalData::gclab_size() vs. ShenandoahThreadLocalData::plab_size()? This issues repeats with other tags/labels/identifers, e.g., when creating a ShenandoahAllocRequest(). I'd have to come up with a whole new way of addressing LABs generically and that would touch a lot of code.
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/30
More information about the shenandoah-dev
mailing list