RFR: Eliminate string dedup cleanup phase and correct UR closure

Zhengyu Gu zgu at redhat.com
Thu Oct 19 13:45:31 UTC 2017


This patch addresses two issues:

1) We don't need cleanup phase. It was intended to cleanup dead objects 
in string dedup table, so that we won't deduplicate to those *dead* char 
arrays.

However, deduplication applies keep_alive_barrier() to revive those 
objects, that makes this phase unnecessary.

2) Applied wrong UR closure.
We need to update references for all marked objects in completed bitmap, 
but ShenandoahUpdateRefsClosure only updates references in current cset.

Webrev: 
http://cr.openjdk.java.net/~zgu/shenandoah/strdedup_cleanup/webrev.00/

Test:
   hotspot_gc_shenandoah (fastdebug + release)


Thanks,

-Zhengyu


More information about the shenandoah-dev mailing list