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