Skip to content

Define a base and derived deserializer class #18922

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

Merged
merged 1 commit into from
Feb 12, 2024

Conversation

cjjdespres
Copy link
Contributor

The JITServerAOTDeserializer is now two classes. The base JITServerAOTDeserializer defines some common operations and functionality, and the derived JITServerLocalSCCAOTDeserializer implements the required deserialization and caching.

The JITServerAOTDeserializer is now two classes. The base
JITServerAOTDeserializer defines some common operations and
functionality, and the derived JITServerLocalSCCAOTDeserializer
implements the required deserialization and caching.

Signed-off-by: Christian Despres <[email protected]>
@cjjdespres cjjdespres requested a review from dsouzai as a code owner February 8, 2024 15:04
@cjjdespres
Copy link
Contributor Author

Attn @mpirvu. This could be the basis of keeping the old deserializer implementation around. In #18301 I could create something like a -XX:[+|-]JITServerAOTCacheIgnoreLocalSCC option. If enabled, we would, among other things, use a new deserializer (called JITServerNoSCCAOTDeserializer or something). If disabled, we'd still use the old JITServerLocalSCCAOTDeserializer.

I initially tried having just a single JITServerAOTDeserializer class that could do one or the other, but what exactly they cache and how they validate certain things is different enough that having a few different derived implementations of a base interface seemed a lot cleaner. (Having a single class would make it easier to, say, fall back to the new implementation if we were using the old implementation and the SCC filled up, but that would bring its own complexity and I don't think we want to support that anyway).

@mpirvu mpirvu self-assigned this Feb 9, 2024
@mpirvu mpirvu added the comp:jitserver Artifacts related to JIT-as-a-Service project label Feb 9, 2024
Copy link
Contributor

@mpirvu mpirvu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mpirvu
Copy link
Contributor

mpirvu commented Feb 12, 2024

jenkins test sanity plinuxjit,xlinuxjit,zlinuxjit,alinux64jit jdk17

@mpirvu mpirvu merged commit b78beae into eclipse-openj9:master Feb 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp:jitserver Artifacts related to JIT-as-a-Service project
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants