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