RFR(M): Shenandoah string dedup support
Zhengyu Gu
zgu at redhat.com
Wed Aug 23 17:52:03 UTC 2017
On 08/23/2017 12:56 PM, Aleksey Shipilev wrote:
> 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?
Unless we want to mark the table (which I think it is a waste),
otherwise, we will step on dead objects when update refs later.
>
> *) 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?
>
Roman answered. I added comments here.
> Nits:
>
> *) g1StringDedup.hpp, extra newline:
>
> 104 private:
> 105
>
> *) shenandoahHeap.inline.hpp, typo:
>
> 355 // Only dedeup evacuated string
Fixed both.
>
> *) 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);
>
My bad, I missed warning. You can build hotspot with
--disable-warnings-as-error?
Webrev updated:
http://cr.openjdk.java.net/~zgu/shenandoah/strdedup/webrev.01/index.html
Thanks,
-Zhengyu
^
>
> Thanks,
> -Aleksey
>
More information about the shenandoah-dev
mailing list