-
Notifications
You must be signed in to change notification settings - Fork 713
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
Add options to bypass JITServer AOT cache per method #15399
Comments
FYI @cjjdespres This would be useful to implement for diagnosing #16232 |
Should these method names be sent to the server and stored in the client data so that it can decide what should or should not be stored/loaded, or would it be easier for the client to send those details along in its compilation request? I only see an The exclusion would happen, say, using the name in the method details of the entry being compiled in Should there be a limit-type option for methods as well, so that only particular methods will be loaded or stored? Is the |
The latter.
Look at the code in |
At the moment the two relevant variables are set with _aotCacheStore = classChain && aotCache && JITServerAOTCacheMap::cacheHasSpace();
aotCacheLoad = aotCacheLoad && classChain && aotCache; I suppose it doesn't make too much sense to forbid storing and not forbid loading. |
Good point. I agree that allowing loads but not stores for a specific method is probably not too useful because a store cannot happen after a successful load anyway. I'm fine if |
Would it be worth it to repurpose the existing regex/search tree infrastructure from the |
It may be more flexible to use our existing infrastructure. |
It looks like the existing filters use TR::CompilationFilters * _compilationFilters;
TR::CompilationFilters * _relocationFilters;
TR::CompilationFilters * _inlineFilters; in |
The option processing framework now includes a limitOption function overload that allows the user to specify a particular compilation filter set. Fixes: #eclipse-openj9/openj9#15399 Signed-off-by: Christian Despres <despresc@ibm.com>
The option processing framework now includes a limitOption function overload that allows the user to specify a particular compilation filter set. Fixes: #eclipse-openj9/openj9#15399 Signed-off-by: Christian Despres <despresc@ibm.com>
I think this was closed unintentionally (by eclipse/omr#6842). |
The -Xaot:jitserverLoadExclude and -Xaot:jitserverStoreExclude options reuse the existing method filtering framework so that clients can selectively exclude particular methods from AOT cache loading or storing in a connected JITServer. Fixes: eclipse-openj9#15399 Signed-off-by: Christian Despres <despresc@ibm.com>
As a debugging/diagnostic feature, we should to have a way of bypassing the JITServer AOT cache on a per method basis, similar to excluding methods from JIT or AOT compilation/load. This can be useful, e.g., to determine whether a problem with a given method is caused by an AOT compiler issue or an AOT cache method serialization/deserialization issue. For completeness, there should be two separate options to forbid storing and loading a method to/from the JITServer AOT cache, e.g.
-Xaot:{method}(jitserverAOTCacheNoStore)
and-Xaot:{method}(jitserverAOTCacheNoLoad)
. These options should be specified on the client side.The text was updated successfully, but these errors were encountered: