RFR: 8049831: Metadata Full GCs are not triggered when CMSClassUnloadingEnabled is turned off

Stefan Karlsson stefan.karlsson at oracle.com
Thu Jul 10 12:10:24 UTC 2014


On 2014-07-10 14:18, Erik Helin wrote:
> On Thursday 10 July 2014 11:38:41 AM Stefan Karlsson wrote:
>> Hi all,
>>
>> I decided to convert my adhoc test into a jtreg test that could be
>> checked in:
>> http://cr.openjdk.java.net/~stefank/8049831/webrev.01
> Hotspot changes looks good, Reviewed!

Thanks!

>
> As for the test, I think it would make sense to use jtreg's driver
> feature in this test:
>
> * @build TestCMSClassUnloadingDisabledHWM
> * @run main ClassFileInstaller sun.hotspot.WhiteBox
> * @run driver TestCMSClassUnloadingDisabledHWM
> * @summary Test that -XX:-CMSClassUnloadingEnabled will trigger a Full GC when
>             more than MetaspaceSize metadata is allocated.
>
> What do you think?

http://cr.openjdk.java.net/~stefank/8049831/webrev.02/

thanks!
StefanK

>
> Thanks,
> Erik
>
>> StefanK
>>
>> On 2014-07-10 10:22, Stefan Karlsson wrote:
>>> Hi all,
>>>
>>> Please, review this fix to honor -XX:-CMSClassUnloadingEnabled
>>> correctly in the metadata allocation failure path.
>>>
>>> http://cr.openjdk.java.net/~stefank/8049831/webrev.00
>>> https://bugs.openjdk.java.net/browse/JDK-8049831
>>>
>>> By default, CMS does class unloading after a concurrent marking cycle.
>>> When the amount of metadata hits the high water mark
>>> (capacity_until_GC), a concurrent cycle is initiated, the high water
>>> mark is increased and the thread can proceed with the allocation. If
>>> CMSClassUnloadingEnabled is turned off we don't unload classes after a
>>> concurrent cycle, but instead relies on Full GCs to reclaim metadata
>>> memory. The current code skips triggering a concurrent cycle if
>>> CMSClassUnloadingEnabled is turned off, but it still allows the high
>>> water mark to be increased and the thread can proceed with the
>>> allocation without triggering a Full GC first. This defeats the entire
>>> purpose of the high water mark.
>>>
>>> The suggested fix is to not allow the increase of the high water mark
>>> and the allocation if CMSClassUnloadingEnabled is turned off.
>>>
>>> thanks,
>>> StefanK



More information about the hotspot-gc-dev mailing list