RFR: Fixed two string dedup issues

Zhengyu Gu zgu at redhat.com
Tue Oct 10 13:47:42 UTC 2017


Oops!

Updated webrev: 
http://cr.openjdk.java.net/~zgu/shenandoah/strdedup_fix/webrev.01/index.html

-Zhengyu

On 10/10/2017 09:45 AM, Zhengyu Gu wrote:
> 
> 
> 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