RFR(M): Shenandoah string dedup support

Aleksey Shipilev shade at redhat.com
Wed Aug 23 16:56:25 UTC 2017


On 08/22/2017 08:01 PM, Zhengyu Gu wrote:
> Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/strdedup/webrev.00/

General:

 *) Do we need to do StringDedup cleanup on each concurrent mark? Right now all the cleanup actions
in final mark are done optionally (every 5-th cycle by default). Should we do the String table
cleanup there as well?

 *) Trying to understand the logic for dedup during evacuation. Why do we need to have the block
before the fwdptr CAS? Why can't we increment the copy_val age after successful copy?

Nits:

 *) g1StringDedup.hpp, extra newline:

  104 private:
  105

 *) shenandoahHeap.inline.hpp, typo:

 355     // Only dedeup evacuated string

 *) Build fails:

/home/shade/trunks/shenandoah-jdk10/hotspot/src/share/vm/gc/g1/g1StringDedupThread.cpp:40:16: error:
format not a string literal and no format arguments [-Werror=format-security]
   set_name(name);
                ^

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list