United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6989368 Regression in scimark2.MonteCarlo in jdk7_b112 on Linux
6989368 : Regression in scimark2.MonteCarlo in jdk7_b112 on Linux

Details
Type:
Bug
Submit Date:
2010-10-04
Status:
Closed
Updated Date:
2011-04-23
Project Name:
JDK
Resolved Date:
2011-04-23
Component:
hotspot
OS:
linux
Sub-Component:
compiler
CPU:
x86
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs19
Fixed Versions:
hs20

Related Reports
Backport:
Backport:
Relates:
Relates:

Sub Tasks

Description
Mark Christiaens wrote:
> I suspect that there may be a speed regression.  See the "Monte Carlo" 
> entry of the scimark benchmark:
> 
> On build 110: 
> 
> /usr/java/latest/bin/java -XX:+AggressiveOpts -XX:+UseFPUForSpilling -cp 
> scimark2lib.jar jnt/scimark2/commandline
> 
> SciMark 2.0a
> 
> Composite Score: 1141.003846727709
> FFT (1024): 710.19567440319
> SOR (100x100):   1275.7066629070716
> Monte Carlo : 620.660007029971
> Sparse matmult (N=1000, nz=5000): 1237.695921732067
> LU (100x100): 1860.760967566245
> 
> On build 112:
> 
> /usr/java/latest/bin/java -XX:+AggressiveOpts -cp scimark2lib.jar 
> jnt/scimark2/commandline
> 
> SciMark 2.0a
> 
> Composite Score: 1042.2369328772832
> FFT (1024): 713.0991697764947
> SOR (100x100):   1276.9747697972227
> Monte Carlo : 212.3698130107359
> Sparse matmult (N=1000, nz=5000): 1061.7415523163634
> LU (100x100): 1946.9993594855982
> 
> My CPU: Intel(R) Core(TM) i5 CPU 750  @ 2.67GHz
> My OS: Fedora 13, 64 bit
> 
> Kind regards,
> 
> Mark

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/3f9a70eb8b1f
                                     
2010-10-09
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/3f9a70eb8b1f
                                     
2010-10-05
EVALUATION

ciMethod::instructions_size() returns incorrect value after "6953144: Tiered compilation" changes.
The method code was merged incorrectly with changes for "6978355: renaming for 6961697",
code->code_end() is used instead of code->insts_end():

- return code->insts_end() - code->verified_entry_point();
+ if (code != NULL && (comp_level == CompLevel_any || comp_level == code->comp_level())) {
+ return code->code_end() - code->verified_entry_point();
+ }
+ return 0;
                                     
2010-10-04
EVALUATION

Method Random::nextDouble() is not inlined when compiled with b112 which prevents scalar replace Random object using Escape Analysis:

% /java/re/jdk/7/promoted/all/b112/binaries/linux-amd64/fastdebug/bin/java  -XX:+PrintCompilation -XX:+PrintInlining jnt.scimark2.commandline


  12479   8       jnt.scimark2.MonteCarlo::integrate (66 bytes)
      @ 6   jnt.scimark2.Random::<init>  inline (hot)
        @ 1   java.lang.Object::<init>  inline (hot)
        @ 72   jnt.scimark2.Random::initialize  inline (hot)
          @ 14   java.lang.Math::abs  executed < MinInliningThreshold times
Inlining intrinsic _min at bci:19 in jnt.scimark2.Random::initialize (125 bytes)
      @ 18   jnt.scimark2.Random::nextDouble  already compiled into a big method
      @ 24   jnt.scimark2.Random::nextDouble  already compiled into a big method

But the compiled size of nextDouble() did not change actually:

b111:

Compiled (c2)   6   nmethod jnt.scimark2.Random::nextDouble (124 bytes)
 total in heap  [0x00007fdc81118590,0x00007fdc81118df8] = 2152
 relocation     [0x00007fdc811186b8,0x00007fdc811186e0] = 40
 main code      [0x00007fdc811186e0,0x00007fdc81118ae0] = 1024
 stub code      [0x00007fdc81118ae0,0x00007fdc81118af4] = 20
 constants      [0x00007fdc81118af4,0x00007fdc81118af8] = 4
 oops           [0x00007fdc81118af8,0x00007fdc81118b08] = 16
 scopes data    [0x00007fdc81118b08,0x00007fdc81118bc0] = 184
 scopes pcs     [0x00007fdc81118bc0,0x00007fdc81118de0] = 544
 dependencies   [0x00007fdc81118de0,0x00007fdc81118de8] = 8
 nul chk table  [0x00007fdc81118de8,0x00007fdc81118df8] = 16
 oops           [0x00007fdc81118af8,0x00007fdc81118b08] = 16

b112:

Compiled (c2)    5858   6 s    nmethod jnt.scimark2.Random::nextDouble (124 bytes)
 total in heap  [0x00007fe90f592650,0x00007fe90f592eb8] = 2152
 relocation     [0x00007fe90f592778,0x00007fe90f5927a0] = 40
 main code      [0x00007fe90f5927a0,0x00007fe90f592ba0] = 1024
 stub code      [0x00007fe90f592ba0,0x00007fe90f592bb8] = 24
 oops           [0x00007fe90f592bb8,0x00007fe90f592bc8] = 16
 scopes data    [0x00007fe90f592bc8,0x00007fe90f592c80] = 184
 scopes pcs     [0x00007fe90f592c80,0x00007fe90f592ea0] = 544
 dependencies   [0x00007fe90f592ea0,0x00007fe90f592ea8] = 8
 nul chk table  [0x00007fe90f592ea8,0x00007fe90f592eb8] = 16
                                     
2010-10-04



Hardware and Software, Engineered to Work Together