RFR: Abstraction for TLAB dummy object
Roman Kennke
rkennke at redhat.com
Mon Jun 11 16:15:42 UTC 2018
Am 11.06.2018 um 18:10 schrieb Aleksey Shipilev:
> On 06/11/2018 05:55 PM, Roman Kennke wrote:
>> This changes/implements a proper abstraction for TLAB filler objects. It
>> mirrors what I am going to propose for:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8204685
>>
>> .. but with Shenandoah implementation.
>>
>> It also fixes an issue: currently when filling PLABs, we zap the filler
>> object with zeroes. We don't need to do that, and save those memory
>> accesses.
>>
>> http://cr.openjdk.java.net/~rkennke/tlabfiller/webrev.00/
>
> Let's wait what upstream people say about this. But I think it deserves a separate
> Shenandoah-specific and backportable patch right now: PLAB::retire_internal and PLAB::add_undo_waste
> should pass zap=false:
>
> CollectedHeap::fill_with_object(..., /* zap = */ !UseShenandoahGC);
>
> Maybe the call in SH::evacuate_object needs passing fill_with_object(..., /* zap = */ false) too?
Probably not worth. This is only relevant in debug builds:
in CollectedHeap::fill_with_array() :
..
DEBUG_ONLY(zap_filler_array(start, words, zap);)
..
I'll upstream it, and then merge it back.
Roman
More information about the shenandoah-dev
mailing list