IV12155: JAVA JIT - LONG GC PAUSE TIMES ON PPC
Closed as program error.
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.
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
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.
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.
Reported component name
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
Fixed component ID
Applicable component levels