-
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
Disable Fixed Heap Simple Write Barriers for PortableSharedCache #10789
Disable Fixed Heap Simple Write Barriers for PortableSharedCache #10789
Conversation
8b17c6c
to
d9078c7
Compare
|
@mpirvu Hi Marius, I did not observe an issue even without this change. We seem to load AOT fine with my AcmeAir application. Also another question is if this will cause AOT incompatibility how come we do not have a AOT compatibility check for this? |
Good question, unless we don't understand what fixed heap size is or how to enable it. @dsouzai do you have an idea on this matter? |
I guess we've never properly accounted for this case. We don't seem to check for |
I guess I will open another PR to include them in the check. |
ed4ccb6
to
14b8ee0
Compare
@mpirvu Hi Marius, this one is ready for review. |
As discussed, I would like to make sure that we have a real problem before merging a "solution" for it. |
@dsouzai #7710 is the only place I've seen this problem mentioned. Do you still remember who raised this problem and if there's any evidence that this is actually a problem? My local testing has shown that AOT was loading fine and no crashes when I switched from a fixed-heap configuration to a variable-heap configuration. |
I know @fjeremic had mentioned in in the past that that writebar sequence is simpler if Xmx and Xms are the same (he's on vacation till late next week I think?). I don't think we've ever run into a problem, but I suppose theoretically we could if the heap size changes if the loaded AOT code could be using the wrong writebars. |
Would we ever actually allow the heap size to be adjusted/changed between runs? This would cause a lot of differences for the runtime and it seems like this is quite different to the original purpose of portable SCC in that we were trying to avoid over dependence on the machine architecture. This is a performance trade for a different purpose - does it make sense to wrap it under the same banner? Might it be better to just produce a better diagnostic to inform users when we reject AOT code due to a GC configuration change so they can decide whether to build the image with a variable heap size or to actually fix their heap for a performance boost? |
Yeah I think this may be the better solution here.
I don't think we have a use case where the user constantly change heap configurations between runs of the same application. |
I am also ok with forcing |
@andrewcraik Any objections on this? Wondering if you have any idea how much of a performance boost fixed heap provides. |
This needs to be measured, because even if we had estimations based on old experiments, behavior might have changed. |
Signed-off-by: Harry Yu <harryyu1994@gmail.com>
14b8ee0
to
ca8777a
Compare
x86: Did not observe performance penalty with my setup.
Z: 42 hours worth of throughput runs (specjbb2015)
Power: 1 hour worth of throughput runs (AcmeAir)
|
@mpirvu See above for performance numbers. I think this one is safe to go in. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
jenkins test sanity all jdk11 |
Signed-off-by: Harry Yu harryyu1994@gmail.com