RFR: Can not dedup string inside write barrier

Zhengyu Gu zgu at redhat.com
Mon Nov 6 15:25:56 UTC 2017



On 11/06/2017 10:13 AM, Aleksey Shipilev wrote:
> On 11/06/2017 03:59 PM, Zhengyu Gu wrote:
>> Can not perform String deduplication inside a write barrier, as it takes lock, that violates write
>> barrier's leaf call constraint.
>>
>>
>> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/strdedup_wb/webrev.00/
> 
> Okay, but minor nits:
> 
>   *) I think there is no need for templates, because the method is already slow-path. A simple
> boolean arg would be enough? This will simplify backports too, because the signature change would be
> needed everywhere, instead of blind substitution of evacuate_object.
Yes, for write barrier, it is slow path. However, it is also used by GC, 
that can have some impact (?).

> 
>   *) Excess space before ShenandoahHeap
> 
>   441 inline oop  ShenandoahHeap::evacuate_object(oop src, Thread* thread, bool& evacuated) {
> 
>   445 inline oop  ShenandoahHeap::write_barrier_evacuate_object(oop src, Thread* thread, bool&
> evacuated) {

Fixed.

Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/strdedup_wb/webrev.01/

Thanks,

-Zhengyu

> 
> Thanks,
> -Aleksey
> 


More information about the shenandoah-dev mailing list