[12] RFR(S) 8210220: [AOT] jdwp test cases are failing with error # ERROR: TEST FAILED: Cought IOException while receiving event packet

dean.long at oracle.com dean.long at oracle.com
Thu Sep 13 18:59:05 UTC 2018


After the first PauseNoSafepointVerifier, I think you need to check 
mh->number_of_breakpoints() again, because it could have changed.

dl

On 9/13/18 9:01 AM, Vladimir Kozlov wrote:
> 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