RFR (M): 8217778: StringTable cleanup miscalculates amount of dead objects
Thomas Schatzl
thomas.schatzl at oracle.com
Mon Jan 28 11:43:54 UTC 2019
Hi all,
can I have reviews for this change that tries to fix the issue with
the string table reporting too low "dead" numbers to the ServiceThread
notification mechanism in the review for JDK-8213229, potentially
causing C heap memory being kept live for longer than necessary?
This change implements one option for fixing this, in particular that
the WeakProcessor calls OopStorage::oops_do() instead of
::weak_oops_do, counting the number of NULL entries manually.
There is another, let weak_oops_do() return the number of NULL entries
as function return value. However the return value of the used
iterate_safepoint() is already in use in some I'd consider interesting
test case. I did not want to add another out-parameter either.
Since the WeakProcessor has been the main user of the weak_oops_do()
method, I would suggest to clean this up preferably in an extra CR:
there is still one use of the OopStorage::weak_oops_do() method that
could be easily removed. If you think we should not remove it, I
strongly suggest to rename the weak_oops_do() methods to better
indicate what they actually do instead of giving a very strong (wrong)
suggestion where/when they should be used.
CR:
https://bugs.openjdk.java.net/browse/JDK-8217778
Webrev:
http://cr.openjdk.java.net/~tschatzl/8217778/webrev/
Testing:
hs-tier1-5
Thanks,
Thomas
More information about the hotspot-gc-dev
mailing list