RFR(S) 8229377: [JVMCI] Improve InstalledCode.invalidate for large code caches
Tom Rodriguez
tom.rodriguez at oracle.com
Wed Dec 11 20:17:06 UTC 2019
http://cr.openjdk.java.net/~never/8229377.1/webrev/
I have moved all the logic over into deoptimize_all_marked and added
some comments to the method. I also rearranged the invalidation logic
to make it cleaner. I've submitted the new version for testing.
tom
Tom Rodriguez wrote on 12/10/19 11:21 PM:
>> Yes, right. I am confusing because not in all places we do this
>> sequence: mark_for_deoptimization, make_not_entrant, patch frames.
>> Patching frames are not always at the same place as we do marking.
>>
>> I also noticed that you changed under which locks make_not_entrant is
>> done. May be better to pass nmethod into deoptimize_all_marked() and
>> do it there (by default pass NULL)?
>
> You mean the CodeCache_lock? The CompiledMethod_lock is only thing
> required for make_not_entrant and that's acquired in
> make_not_entrant_or_zombie. The CodeCache_lock is required for the safe
> iteration over the CodeCache itself.
>
> Though I kind of like your suggestion of passing the nmethod to the call
> and performing the make_not_entrant call there instead. It keeps the
> logic together. I'll make that change.
>
> tom
>
>>
>> Thanks,
>> Vladimir
>>
>>>
>>> tom
>>>
>>>>
>>>> Thanks,
>>>> Vladimir
>>>>
>>>> On 12/9/19 12:10 PM, Tom Rodriguez wrote:
>>>>> http://cr.openjdk.java.net/~never/8229377/webrev
>>>>> https://bugs.openjdk.java.net/browse/JDK-8229377
>>>>>
>>>>> This is a minor improvement to the JVMCI invalidate method to avoid
>>>>> scanning large code caches when invalidating a single nmethod.
>>>>> Instead the nmethod is directly made not_entrant. In general I'm
>>>>> unclear what the benefit of the
>>>>> mark_for_deoptimization/make_marked_nmethods_not_entrant split is.
>>>>> Testing is in progress.
>>>>>
>>>>> JDK-8230884 had been previously duplicated against this because
>>>>> they overlapped a bit, but in the interest of clarity I separated
>>>>> them again.
>>>>>
>>>>> tom
More information about the hotspot-compiler-dev
mailing list