RFR: Fixed two string dedup issues
Zhengyu Gu
zgu at redhat.com
Tue Oct 10 13:45:07 UTC 2017
On 10/09/2017 02:28 PM, Aleksey Shipilev wrote:
> On 10/09/2017 06:45 PM, Zhengyu Gu wrote:
>> Fixed two issues:
>>
>> 1) Missing string dedeup on shenandoah write barrier fast path.
>> 2) Missing dedup table reference update on piggyback reference update path.
>
> Please commit them as two separate changesets, if you can?
>
>> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/strdedup_fix/webrev.00/
>
> *) Why this is needed?
>
> 27 #include "classfile/javaClasses.inline.hpp"
45 assert(java_lang_String::is_instance_inlined(java_string), "Must
be a String object");
in is_candidate(). complained in aarch64 build
>
> *) I guess the parallel_update_refs() call during init_mark misses the profiling counters?
Yep. Fixed and that helped to unravel that update refs is not needed if
it is full GC cycle.
Added more stress tests with -XX:ShenandoahUpdateRefsEarly=off
Also, fixed safepoint check to ensure that it is a Shenandoah GC
safepoint. We can hit periodic or clean up safepoints during concurrent
evacuation objects.
Updated webrev:
file:///home/zgu/webrevs/shenandoah/strdedup_fix/webrev.01/index.html
Test:
Reran tests.
Thanks,
-Zhengyu
>
> Thanks,
> -Aleksey
>
More information about the shenandoah-dev
mailing list