Review request: 8008549: NPG: SystemDictionary::find(...) unnecessarily keeps class loaders alive
Karen Kinnear
karen.kinnear at oracle.com
Tue Feb 26 09:21:21 PST 2013
Stefan,
The fix looks good.
Thank you for catching that!
thanks,
Karen
On Feb 26, 2013, at 8:46 AM, Stefan Karlsson wrote:
> Thanks for the review.
>
> StefanK
>
> On 02/26/2013 02:18 PM, Coleen Phillimore wrote:
>>
>> This is a really clean fix and thank you for finding one of the causes of the problem.
>>
>> Coleen
>>
>> On 2/21/2013 11:57 AM, Stefan Karlsson wrote:
>>> http://cr.openjdk.java.net/~stefank/8008549/webrev.00/
>>>
>>> This change fixes a bug, which showed up as a regression in our Jetty footprint regression testing. The bug prevents the young GCs from reclaiming some java.util.zip.Inflaters, which in turn holds on to 7 KB of native memory each.
>>>
>>> Description from the bug report:
>>> Before the PermGen removal a class loader could be garbage collected by a young GC if it didn't load any classes and all references to it were dropped.
>>>
>>> After the PermGen removal, there's an unnecessary call to register_loader in the SystemDictionary::find(...) function:
>>> ClassLoaderData* loader_data = register_loader(class_loader, CHECK_NULL);
>>>
>>> which prevents these kind of class loader from being garbage collected by the young GCs.
>>>
>>> Fortunately, we don't have to register a ClassLoaderData for the class loader in the find(...) function. The rational is that if we haven't already setup a ClassLoaderData for the class loader, then it won't have an entry in the dictionary, and we can safely return NULL.
>>>
>>> This bug is one of the reasons for the memory footprint regressions seen in:
>>> JDK-8001590: NPG: Footprint increase when running Jetty
>>>
>>> thanks,
>>> StefanK & Erik Helin
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130226/e28240d0/attachment-0001.html
More information about the hotspot-runtime-dev
mailing list