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

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Fri Mar 29 21:53:49 UTC 2019


Serguei,
Thank you for reviewing.

On 3/29/19 3:06 PM, serguei.spitsyn at oracle.com wrote:
> Hi Coleen,
>
> It looks good to me.
> I agree with Erik on reset_old_table().
>
> I have one question.
>
> http://cr.openjdk.java.net/~coleenp/2019/8221183.01/webrev/src/hotspot/share/code/codeCache.cpp.frames.html
>

Yes, I changed it to reset_old_method_table.

> 1077 void CodeCache::mark_for_evol_deoptimization(InstanceKlass* 
> dependee) {
> *1078 MutexLockerEx mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);*
> 1079
> 1080   // Mark dependent AOT nmethods, which are only found via the class redefined.
> 1081 // TODO: add dependencies to aotCompiledMethod's metadata section 
> so this isn't
> 1082 // needed.
> 1083   AOTLoader::mark_evol_dependent_methods(dependee);
> 1084 }
>
> Is it still necessary to grab the CodeCache_lock here?
>
It's actually not necessary because we're at a safepoint, and this code 
is always at a safepoint.

I'll assert it's at a safepoint.  flush_evol_dependents has this:

   // --- Compile_lock is not held. However we are at a safepoint.
   assert_locked_or_safepoint(Compile_lock);

Thanks,
Coleen
>
> Thanks,
> Serguei
>
>
> On 3/27/19 06: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