RFR (S) 8220656 : ARM32: -XX:MaxVectorSize=16 makes SIGILL

David Holmes david.holmes at oracle.com
Wed May 15 01:16:25 UTC 2019


On 15/05/2019 6:48 am, dean.long at oracle.com wrote:
> Looks fine, but you might want to print a warning if you override the 
> user's choice.

I would normally agree, but in this case the following code will already 
silently overwrite the user's choice in some cases:

  281   if (MaxVectorSize > 16) {
  282     FLAG_SET_DEFAULT(MaxVectorSize, 8);
  283   }

and I find it odd that it drops it back to 8 rather than taking the 
upper-limit of 16.

To me the first problem here is that MaxVectorSize should be a pd_global 
so each platform can just set the right default to begin with, and set a 
correct allowed range for that platform. In fact with a constraint 
function it could even incorporate the has_simd() check. But that's 
getting a bit beyond the current fix.

I can't see any non-convoluted way to print a warning under all the 
right circumstances, so I'll leave it to Boris to decide what to do 
here. I don't think a warning is essential.

Cheers,
David

> dl
> 
> On 5/14/19 8:39 AM, Boris Ulasevich wrote:
>> Hi all,
>>
>> Please review a simple change to prevent VLD1/VST1 instructions 
>> generation on ARM32 processor without SIMD support. The change 
>> overrides MaxVectorSize option set up by user to a value acceptable by 
>> the hardware.
>>
>> https://bugs.openjdk.java.net/browse/JDK-8220656
>> http://cr.openjdk.java.net/~bulasevich/8220656/webrev.01/
>>
>> thanks,
>> Boris
> 


More information about the hotspot-dev mailing list