eclipse-openj9 / openj9

Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Other
3.28k stars 722 forks source link

Methods running in interpreter when compiled bodies exist #20535

Open JamesKingdon opened 2 weeks ago

JamesKingdon commented 2 weeks ago

AIX ppc64-64 (build 8.0.8.30 - pap6480sr8fp30-20240801_01(SR8 FP30))

I wanted to record this observation for future investigation, but it's unlikely I can get more data for it during the current case.

The main issue that a customer is dealing with is the JIT compiler reaching cache full after 23s with only 8 of 256MB of the cache used. However, during the investigation I noticed that even methods that had already been compiled were running in the interpreter:

3XMCPUTIME               CPU usage total: 58.059065000 secs, user: 17.795296000 secs, system: 40.263769000 secs, current category="Application"
3XMHEAPALLOC             Heap bytes allocated since last GC cycle=10674112 (0xA2DFC0)
3XMTHREADINFO3           Java callstack:
4XESTACKTRACE                at org/apache/xerces/impl/XMLNSDocumentScannerImpl.scanStartElement(Bytecode PC:461) // compiled bodies exist
4XESTACKTRACE                at org/apache/xerces/impl/XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Bytecode PC:416) // compiled bodies exist
4XESTACKTRACE                at org/apache/xerces/impl/XMLDocumentFragmentScannerImpl.scanDocument(Bytecode PC:26)// compiled bodies exist

Is it possible that an attempt to recompile an existing compiled method when the cache is full might result in the existing method body becoming unavailable for further use?

github-actions[bot] commented 2 weeks ago

Issue Number: 20535 Status: Open Recommended Components: comp:vm, comp:gc, comp:test Recommended Assignees: gacholio, pshipton, keithc-ca