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