[12] RFR(S) 8210220: [AOT] jdwp test cases are failing with error # ERROR: TEST FAILED: Cought IOException while receiving event packet
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Sep 13 04:00:33 UTC 2018
Yes, you are right I will add NoSafepointVerifier and will rerun testing.
Thanks,
Vladimir
On 9/12/18 6:51 PM, dean.long at oracle.com wrote:
> On 9/12/18 6:25 PM, Vladimir Kozlov wrote:
>> Thank you, Dean
>>
>> Breakpoint is set at safepoint:
>>
>> http://hg.openjdk.java.net/jdk/jdk/file/b7bfd64e43a6/src/hotspot/share/prims/jvmtiImpl.cpp#l411
>>
>> But why it is important to not be at safepoint in publish_aot(). If AOT is registered first and then breakpoint is set
>> AOT methods will be deoptimized by CodeCache::flush_dependents_on_method() which is called from BreakpointInfo::set().
>
> I mean you can't do this:
>
> 1) check breakpoint count
> 2) safepoint
> 3) register code
>
> The AOT code is not visible to CodeCache::flush_dependents_on_method() until the cmpxchg().
> NoSafepointVerifier would catch any changes in the future that introduce a safepoint.
>
> dl
>
>>
>> Vladimir
>>
>> On 9/12/18 5:45 PM, dean.long at oracle.com wrote:
>>> Hi Vladimir. C1 and C2 use ciEnv which also grabs locks and checks JvmtiExport::can_hotswap_or_post_breakpoint() and
>>> Dependencies::check_evol_method(). But if the breakpoint count can only be changed by the VM thread at a safepoint,
>>> then your fix looks good as long as we don't enter a safepoint before the code is registered. How about adding a
>>> NoSafepointVerifier to publish_aot()?
>>>
>>> dl
>>>
>>>
>>> On 9/12/18 1:52 PM, Vladimir Kozlov wrote:
>>>> http://cr.openjdk.java.net/~kvn/8210220/webrev.00/
>>>> https://bugs.openjdk.java.net/browse/JDK-8210220
>>>>
>>>> Don't register AOT method if corresponding java method has breakpoints (for debugging) otherwise AOT method will be
>>>> executed which do not stop at breakpoint. JIT has similar check [1].
>>>>
>>>> I also removed AOT code which is not used and we forgot to remove.
>>>>
>>>> Tested hs-tier1-3.
>>>>
>>>> thanks,
>>>> Vladimir
>>>>
>>>> [1] http://hg.openjdk.java.net/jdk/jdk/file/75261571c13d/src/hotspot/share/oops/method.cpp#l845
>>>
>
More information about the hotspot-compiler-dev
mailing list