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
721
forks
source link
Queued methods not reset during code cache flush #20629
Tested with 17.0.12.1 on Power linux, but problem is likely common to all versions and platforms.
When running in FSD mode class redefinition causes all methods to be unloaded from the code cache. However the existing code fails to reset the extra field for methods that have been queued but not yet compiled. This means that the queued methods can never be compiled during the remainder of the run and this can cause a significant performance penalty. For example,
Tested with 17.0.12.1 on Power linux, but problem is likely common to all versions and platforms.
When running in FSD mode class redefinition causes all methods to be unloaded from the code cache. However the existing code fails to reset the
extra
field for methods that have been queued but not yet compiled. This means that the queued methods can never be compiled during the remainder of the run and this can cause a significant performance penalty. For example,Before change:
After change:
I have created https://github.com/eclipse-openj9/openj9/pull/20628 for this problem.