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
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?
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:
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?