APAR status
Closed as program error.
Error description
Error Message: Garbage collection pause times can go for as log as 12 minutes. . Stack Trace: N/A . A TProf during the GC pause time will show that the JIT library is consuming a lot of CPU time. There will be a lot of wait time if running on a multiprocessor computer as the JIT process that is making the GC run for so long is single threaded. The JIT methods consuming the CPU time will looks something like this: Total % For All Processes (/opt/IBM/WebSphere/AppServer/java/jre/lib/ppc64/compressedrefs/ libj9jit24.so) = 22.26 Subroutine % Source ========== ====== ====== .TR_RuntimeAssumption::isAssumingMethod(void*) 20.82 UnloadAssumption.cpp id*,TR_RuntimeAssumption**,TR_RuntimeAssumption**) 0.90 UnloadAssumption.cpp ._ptrgl 0.30 ptrgl_64.s .TR_UnloadedClassPicSite::getAssumingPC() 0.14 UnloadAssumption.cpp The problem this APAR addresses is only seen on PowerPC (AIX and LinuxPPC). The problem can only occur under very high load situations where a large number of methods are JIT compiled. The problem is very unlikely to be seen unless the application is using thousands of dynamically generated classes.
Local fix
The problem can be avoid by disabling the interpreter profiler as this will prevent the JIT from generating excessive runtime assumptions. -Xjit:disableInterpreterProfiling Note: Using the above option will have a slight impact on performance. In some cases the use of this option might degrade performance by up to 10%, possibly more in extreme cases
Problem summary
The JIT would take a long time trying to delete runtime assumptions associated with JIT compiled method bodies that are no longer required. This is caused by the JIT generating excessive class unload assumptions for profile directed call devirtualization guard sites.
Problem conclusion
This defect will be fixed in: 6.0.0 SR10-FP1 6.0.1 SR2 7.0.0 SR1 . The JIT was modified so that it only generate class unload assumptions when required to do so to maintain correctness. By doing so we eliminate runtime assumptions and reduce GC pause times when JIT compiled bodies are being deleted.
Temporary fix
Comments
APAR Information
APAR number
IV12155
Reported component name
JIT
Reported component ID
620700124
Reported release
600
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2011-12-14
Closed date
2012-02-24
Last modified date
2012-06-01
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
JIT
Fixed component ID
620700124
Applicable component levels
R600 PSY
UP
R260 PSY
UP
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSC9HBA","label":"Just In Time (JIT) Compiler"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
01 June 2012