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

Boris Ulasevich boris.ulasevich at bell-sw.com
Thu May 16 12:55:00 UTC 2019



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.
- 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