Request for review:JDK-8013036:vm/runtime/simpleThresholdPolicy.cpp: assert(mcs != NULL)

Jiangli Zhou jiangli.zhou at oracle.com
Thu Apr 25 09:49:20 PDT 2013


Hi Vladimir and Christian,

When TieredCompilation is enabled, in 
InterpreterGenerator::generate_counter_incr() 
(templateInterpreter_sparc.cpp, line 300~315), it increments the 
MethodData::invocation_counter only and done. The invocation_counter 
originally in Method, now in MethodCounters is never updated if 
MethodData already exists, hence the MethodCounters object is never 
created. The MethodCounters is only created when one of the counter 
fields is updated the first time in order to save memory.

Thanks,
Jiangli


On 04/24/2013 09:11 PM, Christian Thalinger wrote:
> On Apr 24, 2013, at 8:44 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
>
>> So the question is why method_counters is NULL? It should not happen if method is executed, they should be allocated at that point.
> I agree.  We need to find out why it's null.
>
> -- Chris
>
>> Thanks,
>> Vladimir
>>
>> On 4/24/13 8:16 PM, Jiangli Zhou wrote:
>>> Please review the fix for JDK-8013036
>>> <https://jbs.oracle.com/bugs/browse/JDK-8013036>:
>>>
>>> http://cr.openjdk.java.net/~jiangli/8013036/webrev.00/
>>>
>>> The method_counters could be NULL when
>>> SimpleThresholdPolicy::handle_counter_overflow is called under
>>> TieredCompilation. The assert should be changed to be an 'if' check instead.
>>>
>>> Thanks,
>>> Jiangli



More information about the hotspot-runtime-dev mailing list