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