JDK-8058564 : Tiered compilation performance drop in PIT
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8u40
  • Priority: P1
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-09-16
  • Updated: 2017-07-26
  • Resolved: 2014-09-18
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u40Fixed 9 b34Fixed
Related Reports
Blocks :  
Duplicate :  
Duplicate :  
Relates :  
Description
In latest PIT of hs25.40 several jtreg tests failed due to exceeded timeout.
Performed analysis showed that execution time of following tests increased significantly comparing to jdk8u40-b04:

compiler/5091921/Test6905845.java
compiler/5091921/Test6992759.java
compiler/5091921/Test7020614.java
compiler/7088419/CRCTest.java
java/util/regex/RegExTest.java

For example, java/util/regex/RegExTest.java take ~ 2minutes to finish with jdk8u40-b04 and ~ 15 minutes with PIT build.

Issue could be reproduced with Xcomp and +TieredCompilation. It seems like only compilation on tier 3 is affected: with -TieredCompilation and -XX:TieredStopAtLevel=2 execution time is the same as with 8u40-b04.




Comments
verified in PIT
26-07-2017

ILW=Perf regression in 8u40, PIT, none=HMH=P1
17-09-2014

PIT build spend a lot of time in counter_overflow stub (from 8u40_pit.er): Excl. Incl. Name User CPU User CPU sec. sec. 770.199 770.199 <Total> 102.252 590.283 Runtime1::counter_overflow(JavaThread*,int,Method*) 75.123 620.804 <Unknown> 74.272 74.272 RegisterMap::RegisterMap(JavaThread*,bool) 66.687 80.086 Thread::is_in_stack(unsigned char*)const 49.655 245.942 SimpleThresholdPolicy::event(methodHandle,methodHandle,int,int,CompLevel,nmethod*,JavaThread*) 39.718 632.202 RuntimeStub - counter_overflow Runtime1 stub 34.144 177.264 AdvancedThresholdPolicy::method_invocation_event(methodHandle,methodHandle,CompLevel,nmethod*,JavaThread*) 32.443 32.443 GenericGrowableArray::check_nesting() 24.687 91.354 AdvancedThresholdPolicy::common(bool(AdvancedThresholdPolicy::*)(int,int,CompLevel),Method*,CompLevel,bool) 22.726 46.633 CodeCache::find_blob(void*) 20.965 55.769 frame::sender(RegisterMap*)const 19.944 19.944 CodeHeap::find_start(void*)const 17.022 18.683 AdvancedThresholdPolicy::loop_predicate(int,int,CompLevel) 15.941 17.532 AdvancedThresholdPolicy::call_predicate(int,int,CompLevel) 14.290 14.290 IntervalArray::operator[](int)const 13.640 16.552 nmethod::get_deopt_original_pc(const frame*) 13.399 13.399 os::current_stack_pointer() 11.668 11.668 CompilationPolicy::is_compilation_enabled() 9.256 9.256 Method::is_accessor()const 8.406 8.406 Method::invocation_count() 8.166 11.558 CompileBroker::compilation_is_in_queue(methodHandle,int) 7.405 7.405 Method::backedge_count() 5.884 5.884 <static>@0x2681d38 5.394 5.394 Method::check_code()const 5.344 5.344 CodeBlob::is_nmethod()const
16-09-2014

It looks like performance dropped somewhere around JDK-8023461.
16-09-2014