Skip to content
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

Software based Concurrent Scavenge support on P #3421

Closed
gita-omr opened this issue Oct 23, 2018 · 20 comments
Closed

Software based Concurrent Scavenge support on P #3421

gita-omr opened this issue Oct 23, 2018 · 20 comments

Comments

@gita-omr
Copy link
Contributor

gita-omr commented Oct 23, 2018

The software based read barrier solution for pauseless GC on P

Related issue for Z: #3276

Doc issue eclipse-openj9/openj9-docs#134

Pull requests:
#4159
#4712

Dependencies:
#3453

@gita-omr gita-omr added the Epic label Oct 23, 2018
@gita-omr gita-omr added this to the Release 0.12.0 milestone Oct 23, 2018
@SueChaplain
Copy link
Contributor

Hi @gita-omr

Assuming we will need some documentation to support this. Please add doc:externals label to this and open an issue at openj9-docs repo: https://github.com/eclipse/openj9-docs/issues/new?template=new-documentation-change.md so we can plan for this in the 0.12.0 list.

@gita-omr
Copy link
Contributor Author

An update:
While working on non-compressed version, @jimmyk found a problem with the way read barriers are generated for NULLCHK trees. @0dvictor is working on a different solution right now. @andrewcraik @fjeremic. I imagine this might affect all read/write barrier opcodes @cathyzhyi ...

@0dvictor
Copy link
Contributor

The NULLCHK issue will be fixed with #3798.

@gita-omr
Copy link
Contributor Author

@IBMJimmyk found another common code issue: eclipse-omr/omr#3440

@gita-omr
Copy link
Contributor Author

@pshipton : @IBMJimmyk made some cosmetic changes after another code review and we would like to run more tests. They will be done by Monday morning. Could the code split wait for that?

@pshipton
Copy link
Member

Yes, since we got not much delivered today because of the Jenkins issues it seems we need to delay another day.

@pshipton
Copy link
Member

Deferred to the next release.

@gita-omr
Copy link
Contributor Author

gita-omr commented Feb 6, 2019

@pshipton we are ready to deliver it to 0.13.

@pshipton
Copy link
Member

pshipton commented Feb 6, 2019

@gita-omr when do you expect the merges to occur?

IBMJimmyk added a commit to IBMJimmyk/openj9 that referenced this issue Feb 8, 2019
Sets OMR_GC_CONCURRENT_SCAVENGER in the configure files to enable
concurrent scavenge.

Modifies mminit.cpp to be able to set softwareRangeCheckReadBarrier to
true to enable software based concurrent scavenge.

Implemented irdbarEvaluator and ardbarEvaluator which are used to handle
loads that might need to call out to the readbarrier under Concurrent
Scavenge GC policy.

Updated VMinlineCompareAndSwapObject to be aware of the possiblity of
calling out to the read barrier under Concurrent Scavenge GC policy.

Implemented a new version of arraycopyEvaluator for reference array copies
that calls out to the referenceArrayCopy if current scavenge is currently
happening.

Added jitReadBarrier and jitReferenceArrayCopy as helpers to call out to
J9ReadBarrier and referenceArrayCopy.

Updated thisThreadGetConcurrentScavengeActiveByteAddressOffset and
thisThreadGetEvacuateBaseAddressOffset to recognize Power as well as X86.

Updated insertPrefetchIfNecessary to recognize the irdbari opcode.

Updated copyright dates on modified files.

TM is current not compatible with read barriers. This change will disable
TM if read barriers are needed.

Issue: eclipse-openj9#3421
Signed-off-by: jimmyk <jimmyk@ca.ibm.com>
@gita-omr
Copy link
Contributor Author

@pshipton @amicic I updated Dependencies in the description -- JVMTI fixes for CS.

@gita-omr
Copy link
Contributor Author

Just merged #4159

@fjeremic
Copy link
Contributor

Just merged #4159

@gita-omr left some extra review comments on that PR. There are some changes required.

IBMJimmyk added a commit to IBMJimmyk/openj9 that referenced this issue Feb 12, 2019
Comment regarding compatibility of TM and concurrent scavenge was updated.
At the current time there are no plans to be able to support both at the
time time so it was removed as being a TODO.

stopUsingRegister already performs a NULL check on the register so the
NULL checks before the calls were unnecessary.

Issue: eclipse-openj9#3421
Signed-off-by: jimmyk <jimmyk@ca.ibm.com>
jason-hall pushed a commit to jason-hall/openj9 that referenced this issue Feb 15, 2019
Sets OMR_GC_CONCURRENT_SCAVENGER in the configure files to enable
concurrent scavenge.

Modifies mminit.cpp to be able to set softwareRangeCheckReadBarrier to
true to enable software based concurrent scavenge.

Implemented irdbarEvaluator and ardbarEvaluator which are used to handle
loads that might need to call out to the readbarrier under Concurrent
Scavenge GC policy.

Updated VMinlineCompareAndSwapObject to be aware of the possiblity of
calling out to the read barrier under Concurrent Scavenge GC policy.

Implemented a new version of arraycopyEvaluator for reference array copies
that calls out to the referenceArrayCopy if current scavenge is currently
happening.

Added jitReadBarrier and jitReferenceArrayCopy as helpers to call out to
J9ReadBarrier and referenceArrayCopy.

Updated thisThreadGetConcurrentScavengeActiveByteAddressOffset and
thisThreadGetEvacuateBaseAddressOffset to recognize Power as well as X86.

Updated insertPrefetchIfNecessary to recognize the irdbari opcode.

Updated copyright dates on modified files.

TM is current not compatible with read barriers. This change will disable
TM if read barriers are needed.

Issue: eclipse-openj9#3421
Signed-off-by: jimmyk <jimmyk@ca.ibm.com>
@vij-singh
Copy link

@gita-omr are we still ok for 0.13.0 ?

@SueChaplain
Copy link
Contributor

@gita-omr is this now moved to 0.14.0 please?

@gita-omr
Copy link
Contributor Author

No, it's in 0.13. We generally try to keep milestone field up to date.

@gita-omr
Copy link
Contributor Author

Sorry, just noticed @vij-singh question. This is definitely in 0.13.

@SueChaplain
Copy link
Contributor

@gita-omr - please can you revisit the docs issue you created a while back (eclipse-openj9/openj9-docs#134) to see if you can provide any further information. It implies that the info will be similar to that for z, except that is definitely moved in to 0.14. Thanks!

@gita-omr
Copy link
Contributor Author

Yeah, I meant that the description of software-based CS is the same on Intel, Power, Z (if enabled). As of 0.13 it will be enabled on Intel and Power. Let me review the docs once again to make sure they are up to date in terms of which platform the feature is being enabled.

@pshipton
Copy link
Member

@gita-omr can this Issue be closed now?

@gita-omr
Copy link
Contributor Author

Yes, I just should not that we enabled this on Power Linux LE and AIX. We will open an issue for 0.14 for software-based CS on Linux BE. I will update documentation accordingly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants