RFR: 8222825: ARM32 SIGILL issue on single core CPU (not supported PLDW instruction)

David Holmes david.holmes at oracle.com
Thu May 16 21:48:11 UTC 2019


On 16/05/2019 10:55 pm, Boris Ulasevich wrote:
> 
> 
> On 16.05.2019 15:44, David Holmes wrote:
>> Hi Boris,
>>
>> On 16/05/2019 10:37 pm, Boris Ulasevich wrote:
>>> Hi David, Dean,
>>>
>>> Yes. Thanks for waiting. I think two arm.ad rules are definitely 
>>> better than one with incorrect print. Now arm.ad looks very similar 
>>> to the state before removing obsolete AssumeMP option:
>>>
>>> http://cr.openjdk.java.net/~bulasevich/8222825/webrev.04.jdk-jdk
>>
>> ad files are not really my area but this seems okay.
>>
>> One query in src/hotspot/cpu/arm/assembler_arm_32.hpp:
>>
>> !     assert(!VM_Version::is_initialized() ||
>>
>> I'm surprised this can be called before VM_Version is initialized. I 
>> presume you encountered an assertion failure without this - what was 
>> the call sequence that led here?
> 
> pldw is similar to vcnt in this aspect:
> - before vm initialization pldw is used in generated stub to check if we 
> will get SIGILL or not. This time it is correct to generate the 
> instruction.

Doh! Of course.

Thanks for clarifying.

David

> - after vm initialization we already checked the things and know 
> hardware capabilities, so this time we should not use instructions not 
> supported by hardware
> 
> Call sequence is VM_Version::initialize -> check_mp_ext.
> 
>> Thanks,
>> David
>>
>>> thanks,
>>> Boris
>>>
>>> On 16.05.2019 12:00, David Holmes wrote:
>>>> Hi Boris,
>>>>
>>>> Waiting to see if you have any response to Dean's suggestion before 
>>>> I push this for you.
>>>>
>>>> David
>>>>
>>>> On 14/05/2019 4:28 pm, dean.long at oracle.com wrote:
>>>>> This looks good.  In arm.ad, you could use two rules and a 
>>>>> predicate, so that the PrintOptoAssembly output is correct.
>>>>>
>>>>> dl
>>>>>
>>>>> On 5/13/19 11:04 PM, Boris Ulasevich wrote:
>>>>>> Hi David,
>>>>>>
>>>>>>   It took a time to test the change :)
>>>>>>   Yes, please. Thank you!
>>>>>>
>>>>>> Boris
>>>>>>
>>>>>> 14.05.2019 8:00, David Holmes пишет:
>>>>>>> Hi Boris,
>>>>>>>
>>>>>>> I was wondering what had happened to this one :)
>>>>>>>
>>>>>>> Looks good! I can sponsor for you.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> David
>>>>>>>
>>>>>>> On 14/05/2019 2:45 pm, Boris Ulasevich wrote:
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> Please review the fix for SIGILL that happens on ARM32 CPU 
>>>>>>>> without Multiprocessing Extensions support (this applies to 
>>>>>>>> single-core arm32 processors, which are not very common this 
>>>>>>>> days). With the fix we check PLDW instruction availability on 
>>>>>>>> JVM start-up to correct further instructions generation.
>>>>>>>>
>>>>>>>> https://bugs.openjdk.java.net/browse/JDK-8222825
>>>>>>>> http://cr.openjdk.java.net/~bulasevich/8222825/webrev.03.jdk-jdk
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>> Boris
>>>>>>
>>>>>>
>>>>>


More information about the hotspot-dev mailing list