IBM Support

IJ38083: UNEXPECTEDLY HIGH CPU IN HEAVILY MULTI-THREADED CODE

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: After upgrading the JVM to 8 SR5 FP21 or later an
    unexpected increase in cpu usage may be seen with some
    applications.
    .
    Stack Trace: N/A
    .
    

Local fix

  • Profiling will typically indicate that a single method is
    consuming most of the cpu. For an example method
    "package.Classname.methodname" the following command line option
    will reduce the time spent in a method exhibiting this problem:
    -Xjit:{package/Classname.methodname(*}(disableInlineCheckcast),d
    ontInline={package/Classname.methodname(*}
    Note that there can only be one Xjit option that is active on
    the command line, so if there is already an existing Xjit: it
    will need to be merged with the above.
    

Problem summary

  • This is a rare problem caused by a change to the JIT compiler in
    release 8 SR5 FP21 which affects x86 platforms only. The change
    introduced a class cache slot for inlined instanceof and
    checkcast sequences that is updated with the most recent match.
    In cases where a specific instanceof test is exposed to multiple
    matching values, and the code is actively running in a heavily
    multithreaded application, the continual updates of the class
    cache slot result in poor performance due to the resulting cache
    coherency overheads.
    Instruction level profiling will show an extremely high number
    of cpu ticks on a small number of memory access instructions at
    PC relative addresses, i.e. to data stored at the end of the
    method body. Note that the ticks can be for any access into the
    same cache line as the contended class location, which can make
    the diagnosis a little more confusing.
    

Problem conclusion

  • The JIT is updated to avoid contention on a cache slot for the
    class in instanceof and checkcast tests.
    .
    This APAR will be fixed in the following Releases:
    .
    IBM SDK, Java Technology Edition
       8    SR7 FP15  (8.0.7.15)
    .
    Contact your IBM Product's Service Team for these Service
    Refreshes and Fix Packs.
    For those running stand-alone, information about the available
    maintenance can be found at:
               https://www.ibm.com/support/pages/java-sdk
    

Temporary fix

Comments

APAR Information

  • APAR number

    IJ38083

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2022-02-24

  • Closed date

    2022-06-09

  • Last modified date

    2022-06-09

  • 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

[{"Line of Business":{"code":"LOB36","label":"IBM Automation"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130"}]

Document Information

Modified date:
10 June 2022