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