Request for reviews (L): 7009309: JSR 292: compiler/6991596/Test6991596.java crashes on fastdebug JDK7/b122

Christian Thalinger christian.thalinger at oracle.com
Mon Jan 24 04:42:18 PST 2011


HEADS-UP: Please take a look at this one (or review it) if you are using or supporting older pre-SSE2 systems or use UseSSE=0 or UseSSE=1!  Thank you!

http://cr.openjdk.java.net/~twisti/7009309/webrev.01/

7009309: JSR 292: compiler/6991596/Test6991596.java crashes on fastdebug JDK7/b122
Reviewed-by:

The reason the test fails is because of the extra cleanup code in the
I2C adapter that's executed in C2 when SSE2 is not available (or
UseSSE=1 is used).

The suggested fix is to remove that extra logic completely and always
do the FPU cleaning when SSE2 is not available.  This would also be a
nice cleanup of the code in question.

I did a refworkload run of specjvm98_client with 5 iterations and
-Xint on a dual P3 system and it's slightly slower:

============================================================================
logs.baseline-Xint
 Benchmark         Samples        Mean     Stdev             Geomean Weight
 specjvm98_client        5       11.78      0.10
============================================================================
logs.fix-Xint
 Benchmark         Samples        Mean     Stdev   %Diff    P   Significant
 specjvm98_client        5       11.63      0.09   -1.27 0.035            *
============================================================================

This slowdown would only apply to very old systems and given the fact
that most x86 chips today are 64-bit and/or have SSE2, I think this
should not be a big deal.  And for smaller systems which use C1 and
rely on startup performance this does not apply anyway.

However, in mixed mode the slowdown should completely disappear as the
extra code is only executed when returning from compiled code to the
interpreter.  A quick mixed mode run on that system even shows a
speedup:

============================================================================
logs.baseline
 Benchmark         Samples        Mean     Stdev             Geomean Weight
 specjvm98_client        5       66.81      2.31
============================================================================
logs.fix
 Benchmark         Samples        Mean     Stdev   %Diff    P   Significant
 specjvm98_client        5       68.20      2.04    2.08 0.343            *
============================================================================




More information about the hotspot-dev mailing list