RFR 8055008: Clean up code that saves the previous versions of redefined classes

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Tue Sep 2 19:58:30 UTC 2014


Coleen,

Thank you for the answer!
Yes, I hope to finish this review today.

Thanks,
Serguei


On 9/2/14 5:29 AM, Coleen Phillimore wrote:
>
> Serguei, I didn't answer one of your questions.
>
> On 8/28/14, 5:43 PM, serguei.spitsyn at oracle.com wrote:
>>> This bit is set during purging previous versions when all methods 
>>> have been marked on_stack() if found in various places.  The bit is 
>>> only used for setting breakpoints.
>>
>> I had to ask slightly different.
>> "How precise must be the control of this bit?"
>> Part of this question is the question below about what happens when 
>> the method invocation is finished.
>> I realized now that it can impact only setting breakpoints.
>> Suppose, we did not clear the bit in time and then another breakpoint 
>> is set.
>> The only bad thing is that this new breakpoint will be useless.
>
> Yes.  We set the on_stack bit which causes setting the is_running_emcp 
> bit during safepoints for class redefinition and class unloading.  
> After the safepoint, the on_stack bit is cleared.   After the 
> safepoint, we may also set breakpoints using the is_running_emcp bit.  
> If the method has exited we would set a breakpoint in a method that is 
> never reached.  But this shouldn't be noticeable to the programmer.
>
> The method's is_running_emcp bit and maybe metadata would be cleaned 
> up the next time we do class unloading at a safepoint.
>
>>
>> But let me look at new webrev first to see if any update is needed here.
>>
>
> Yes, please review this again and let me know if this does what I 
> claim it does.
>
> Thank you!
> Coleen



More information about the hotspot-dev mailing list