IV12155: JAVA JIT - LONG GC PAUSE TIMES ON PPC

Subscribe

You can track all active APARs for this component.

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



Rate this page:

(0 users)Average rating

Document information


More support for:

Runtimes for Java Technology
Just In Time (JIT) Compiler

Software version:

6.0

Reference #:

IV12155

Modified date:

2012-06-01

Translate my page

Machine Translation

Content navigation