RFR[8u]: 8164293: HotSpot leaking memory in long-running requests

Jamsheed C m jamsheed.c.m at oracle.com
Tue Nov 22 12:39:31 UTC 2016


Hi Tobias,

On 11/22/2016 1:57 PM, Tobias Hartmann wrote:
> Hi Jamsheed,
>
> On 22.11.2016 08:37, Jamsheed C m wrote:
>> Hi All,
>>
>> Request for review.
>>
>> bugid: https://bugs.openjdk.java.net/browse/JDK-8164293
>>
>> webrev: http://cr.openjdk.java.net/~jcm/8164293/webrev.00/
> I think the resource marks in the sweeper could be "moved up" in the scope but looking at the JDK 9 code, we have them at the places you suggested so I think it's fine for consistency reasons. The JDK 9 code is not affected because it was fixed with JDK-8046809, right?
Yes, Done.
>   Please add this as a comment to the bug.
>
> Why do we need a RM in nmethod::clear_ic_stubs()? It's also missing in JDK 9 code.
This one was causing  the  leak in sweeper task(product build without 
logging option).  RM added in NMethodSweeper::sweep_code_cache should be 
enough as it is sole user of the function. I added RM in clear_ic_stubs 
too to make sure that there is no misses in future. It is good to have 
change in JDK9, as said in 
(https://bugs.openjdk.java.net/browse/JDK-8059675)

>
>> Desc: There were a few  memory leaks in  thread arena due to sweeper task.
>>
>> Fix: Applied ResourceMark wherever applicable.
>>
>> The slow growth of mtClass malloc(the one reported in bug) is not memory leak. It is application behavior in low codecache size setting( frequent sweeps), more InstanceKlass requires OopMapCache initialized here.
> Could you please elaborate on this? Why do we create more InstanceKlasses? And why is this behavior not stabilizing?
It doesn't create more InstanceKlasses. No of InstanceKlasses is 5649 is 
kind of stable.  OopMapCache for an InstanceKlass get initialized on 
first request (Interpreter frame walk during gc). Stabilizing thing is 
yet to be checked as i did all my analysis in debug mode(with gdb 
attached).  It is confirmed that the rate of memory growth in steadily 
decreasing, and all OopMapCache allocation happen for unique 
InstanceKlass. i have a product instance with fixes running now for a 
day. i can wait a few more days to  confirm that i don't miss anything.

Best Regards,
Jamsheed



>
> Thanks,
> Tobias
>
>> Best Regards,
>>
>> Jamsheed
>>



More information about the hotspot-compiler-dev mailing list