RFR (S) 8037226: compiler/7196199/Test7196199.java fails on 32-bit linux with MaxVectorSize > 16

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Mar 14 06:11:03 UTC 2014


WARNING: it is ugly but I don't know an other way to fix the problem and 
keep wide AVX vectors.

Some operating systems (or VMs) does not restore upper 128 bit of AVX 
registers YMM after signal processing. About year ago Mac OS had this 
problem (8003878). And now we found 32-bit Ubuntu (Linux 3.8.0-29) which 
has the same problem.

Instead of reducing vectorization to 16 bytes (XMM registers) I added 
code which verifies YMM state after signal processing and set limit on 
vector's size. The code is part of cpuid info code which JVM executes 
during startup.

https://bugs.openjdk.java.net/browse/JDK-8037226
http://cr.openjdk.java.net/~kvn/8037226/webrev/

Tested on failing machines.

thanks,
Vladimir


More information about the hotspot-dev mailing list