RFR (M) 8221183: Avoid code cache walk in MetadataOnStackMark

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Fri Mar 29 15:41:52 UTC 2019



On 3/29/19 10:54 AM, coleen.phillimore at oracle.com wrote:
>
> Hi Erik,
> Thank you for reviewing this!
>
> On 3/29/19 9:39 AM, Erik Österlund wrote:
>> Hi Coleen,
>>
>> Seems like the recreate_old_table() should be called 
>> reset_old_table() as it does not really create anything.
>>
>
> I can change the name.  I guess the table isn't old but the methods 
> are.  So I could call it reset_old_method_table instead.
>
>> The CodeCache::mark_all_nmethods_for_deoptimization function seems 
>> like a general facility. I don't think I like passing in a boolean if 
>> class redefinition-specific stuff should be done in there or not. 
>> It's a very small method that just iterates over the nmethods. I'd 
>> rather duplicate that while loop in a new function and have the class 
>> redefinition logic be separate.
>>
>
> Yes, I could do this too.  I hate passing a boolean to a function to 
> do something different.  Sort of implies one should write a different 
> function in the first place.

I made these changes (added 
functionmark_all_nmethods_for_evol_deoptimization) and moved all the 
redefinition functions in codeCache.cpp together under #ifndef 
INCLUDE_JVMTI.

http://cr.openjdk.java.net/~coleenp/2019/8221183.02/webrev/index.html

Thanks,
Coleen
>
> Thanks!
> Coleen
>> Otherwise this looks good!
>>
>> Thanks,
>> /Erik
>>
>> On 2019-03-27 14:09, coleen.phillimore at oracle.com wrote:
>>> Summary: Note nmethods with "old" Methods in them in table to walk 
>>> instead.
>>>
>>> See RFE for more details.  Tested with RedefineClasses tests 
>>> with/without -Xcomp, mach5 tier1-5.
>>>
>>> open webrev at 
>>> http://cr.openjdk.java.net/~coleenp/2019/8221183.01/webrev
>>> bug link https://bugs.openjdk.java.net/browse/JDK-8221183
>>>
>>> Thanks,
>>> Coleen
>



More information about the hotspot-dev mailing list