RFR(XS): 8036666: JVMTI GetObjectMonitorUsage does not return correct recursion count

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Fri Mar 7 09:32:03 UTC 2014


Hi Axel,

Thank you for fixing this issue.
I'm reviewing it.
It looks good in general, but a little bit more time is needed to look 
at the tests.

Do you need a sponsor for pushing?

Thanks,
Serguei


On 3/6/14 12:08 AM, Siebenborn, Axel wrote:
>
> Hi all,
>
> could I have a review for the following change?
>
> The recursive lock count for an object is not correct, in cases, where 
> a monitor is inflated after recursive lightweight locks. In this case, 
> the recursion count is taken from the heavyweight monitor, represented 
> by the class ObjectMonitor. ObjectMonitor::_recursions is the number 
> of times ObjectMonitor::enter() was called to acquire the lock minus 
> 1. This counter does not include the recursions of lightweight locks, 
> that happen before inflating the monitor and is not equal to the 
> recursion count from a Java source level point of view.
>
> I added a test to the webrev to reproduce the problem.
>
> The suggested fix  is to call count_locked_objects, even if there's a 
> heavyweight monitor and get the recursion count by iterating the vframes.
>
> Bug:
>
> https://bugs.openjdk.java.net/browse/JDK-8036666
>
> Webrev:
>
> http://cr.openjdk.java.net/~asiebenborn/8036666/webrev/ 
> <http://cr.openjdk.java.net/%7Easiebenborn/8036666/webrev/>
>
> Thanks,
>
> Axel
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/serviceability-dev/attachments/20140307/3603bc62/attachment.html 


More information about the serviceability-dev mailing list