RFR(M): 8204613: StringTable: Calculates wrong number of uncleaned items.

Robbin Ehn robbin.ehn at oracle.com
Wed Jun 13 10:44:58 UTC 2018


Hi, Stefan pointed out that there are some useless methods calls since we don't 
remove any strings in some of the walks.

Serial, Parallel and CMS only removes strings in serial call to unlink.
G1 only removes strings in StringAndSymbolCleaningTask.

I reverted does unneeded changes, leaving the patch with only G1 and ZGC changes 
(+ stringtable):
http://cr.openjdk.java.net/~rehn/8204613/v2/webrev/

Thanks Stefan!

/Robbin

On 06/11/2018 06:09 PM, Robbin Ehn wrote:
> Hi all, please review.
> 
> The StringTable lazy evicts dead string, until a dead string is evicted it will 
> be counted as a dead string. If it is not evicted before next GC cycle it is 
> counted again, making the count of uncleaned strings skew.
> Also ZGC walks the strings without using the stringtable GC API, but it needs to 
> be-able to feedback the number of dead strings to get the cleaning functionality.
> There is a big probability that ZGC makes it in before this change-set, so I 
> included ZGC changes.
> 
> There was a compile issue on slowdebug on windows for create_archived_string(), 
> I added NOT_CDS_JAVA_HEAP_RETURN_(NULL) for it.
> 
> Change-set: http://cr.openjdk.java.net/~rehn/8204613/webrev/index.html
> Bug: https://bugs.openjdk.java.net/browse/JDK-8204613
> 
> T1-3 with ZGC testing on, no related issues and manual JMH testing.
> 
> Thanks, Robbin


More information about the hotspot-runtime-dev mailing list