[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 16:01:18 UTC 2018


Updated changes with NoSafepointVerifier:

http://cr.openjdk.java.net/~kvn/8210220/webrev.01/

Vladimir

On 9/12/18 9:00 PM, Vladimir Kozlov wrote:
> 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