-
Notifications
You must be signed in to change notification settings - Fork 721
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Semeru containers based on OpenJ9 release 0.33 show AOT incompatility problem #15697
Comments
Printing information about the SCC in a container with OpenJ9 0.33 we find:
If I try the same in a container with OpenJ9 0.32 where AOT is loading as expected we find:
The difference is |
Running on a cascade-lake machine and creating a SCC with a recent OpenJ9 build we get these features:
If I add
I think we should have excluded |
PR #14258 added support for AVX512 and included this in the feature array used for |
I wonder if the comment at https://github.com/eclipse-openj9/openj9/blob/master/runtime/compiler/x/env/J9CPU.cpp#L41-L48 could be made clearer to state that ONLY features supported on a SandyBridge should be included in that list. Otherwise, I can understand how a mistake could occur. |
…ption AOT code embedded in containers needs to be able to run on a wide array of processors. For this reason, the portable AOT code is allowed to use only a subset of processor features, subset defined by the SandyBridge architecture. Since AVX512 instructions are not supported by SandyBridge, the AVX512F feature should be removed from the portable set of features. Issue: eclipse-openj9#15697 Signed-off-by: Marius Pirvu <mpirvu@ca.ibm.com>
Since this issue can introduce a significant startup performance regression (one of the key value propositions for OpenJ9) and skylakes aren't that uncommon, I would support releasing this as an update on top of 0.33 (i.e. a 0.33.1) so that we can reduce the number of users affected by it. Also, the fix is very simple an unlikely to add any risk. |
…ption AOT code embedded in containers needs to be able to run on a wide array of processors. For this reason, the portable AOT code is allowed to use only a subset of processor features, subset defined by the SandyBridge architecture. Since AVX512 instructions are not supported by SandyBridge, the AVX512F feature should be removed from the portable set of features. Issue: eclipse-openj9#15697 Signed-off-by: Marius Pirvu <mpirvu@ca.ibm.com>
Issue was fixed in #15699 |
Running
docker run --rm -it ibm-semeru-runtimes:open-17.0.4_8-jre java -Xjit:verbose -version
on a skylake machine shows that no AOT loads are performed. Moreover, the verbose output says:The same command works fine on a recent "cascade-lake" processor.
I looked at the dockerfile definition and it includes
-XX:+PortableSharedCache
, so the JIT should have generated portable AOT code capable of executing on older processors.The text was updated successfully, but these errors were encountered: