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
Remove flushCachesForGC from acquireExclusiveForGC path #7265
Conversation
@dmitripivkine still testing, but have a look |
b35f89b
to
e9f3235
Compare
@dmitripivkine Ready for review, but can only be merged after eclipse-openj9/openj9#18950. |
flushCachesForGC is mostly called close/prior to start-gc point for each particual GC operation/STW-increment, so that we often end up doing it twice, the first one being early during acquireExclusiveVMAccessForGC negotiation. This change removes the one from acquireExclusiveVMAccessForGC, but also adds a couple of flushCachesForGC in GC specific operation that relied on acquireExclusiveVMAccessForGC to do it. Signed-off-by: Aleksandar Micic <Aleksandar_Micic@ca.ibm.com>
e9f3235
to
bdff063
Compare
@babsingh Would you please to help to merge this item when eclipse-openj9/openj9#18950 is going to be promoted first? |
Beside some code cleanup/simplification, it also slightly reduces the pause times, in order of 10s of micro seconds (dependent on the number of application threads). grep -A20 '<cycle-start.scavenge' jbb_CS_PRESET9000_base.out |grep '<gc-op'|awk -F" '{x+=$6} END {print x/NR}' |
jenkins build all |
@dmitripivkine eclipse-openj9/openj9#18950 has been merged. Are there any other dependencies or is this PR good to be merged? |
there is no more dependancy |
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.
OSX PR build failed due to a known and unrelated issue: #7181.
flushCachesForGC is mostly called close/prior to start-gc point for each particual GC operation/STW-increment, so that we often end up doing it twice, the first one being early during acquireExclusiveVMAccessForGC negotiation.
This change removes the one from acquireExclusiveVMAccessForGC, but also adds a couple of flushCachesForGC in GC specific operation that relied on acquireExclusiveVMAccessForGC to do it.