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

Contribute JIT write barrier documentation #11581

Merged
merged 1 commit into from
Feb 1, 2021

Conversation

0xdaryl
Copy link
Contributor

@0xdaryl 0xdaryl commented Jan 6, 2021

Describe the purpose and general operation of JIT write barriers for non-realtime
garbage collection policies.

Signed-off-by: Daryl Maier maier@ca.ibm.com

@0xdaryl
Copy link
Contributor Author

0xdaryl commented Jan 6, 2021

@Akira1Saitoh @knn-k FYI

@0xdaryl
Copy link
Contributor Author

0xdaryl commented Jan 7, 2021

@JamesKingdon

Copy link
Contributor

@fjeremic fjeremic left a comment

Choose a reason for hiding this comment

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

Thanks for writing this!

doc/compiler/JitWriteBarriers.md Outdated Show resolved Hide resolved
doc/compiler/JitWriteBarriers.md Outdated Show resolved Hide resolved
doc/compiler/JitWriteBarriers.md Show resolved Hide resolved
doc/compiler/JitWriteBarriers.md Outdated Show resolved Hide resolved
Copy link
Contributor

@dsouzai dsouzai left a comment

Choose a reason for hiding this comment

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

Minor grammatical errors.

Thanks for writing this up Daryl.

doc/compiler/JitWriteBarriers.md Show resolved Hide resolved
doc/compiler/JitWriteBarriers.md Outdated Show resolved Hide resolved
@dsouzai
Copy link
Contributor

dsouzai commented Jan 8, 2021

Also worth adding [ci skip] to the commit message so that the travis build won't run as this is a doc only change.

UDATA objectDelta = (UDATA)object - base;
UDATA size = vmThread->omrVMThread->heapSizeForBarrierRange0;
if (objectDelta < size) {
/* object is old so check for concurrent barrier */
Copy link
Contributor

Choose a reason for hiding this comment

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

I've got a question. What is old object in non-generational GC policy? What exactly is objectDelta < size checking here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This policy does not use a generational nursery and has only a flat "tenure" space. "Old" refers to that flat space. I imagine this was just a cut-and-paste remnant from some of the other barriers.

@fjeremic fjeremic self-assigned this Jan 21, 2021
Copy link
Contributor Author

@0xdaryl 0xdaryl left a comment

Choose a reason for hiding this comment

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

Thank you all for your comments. I believe I have addressed all of them.

I also added a link to a video that describes the mechanics of each of the GC policies in more detail if the reader needs more background.

doc/compiler/JitWriteBarriers.md Outdated Show resolved Hide resolved
doc/compiler/JitWriteBarriers.md Show resolved Hide resolved
doc/compiler/JitWriteBarriers.md Outdated Show resolved Hide resolved
doc/compiler/JitWriteBarriers.md Outdated Show resolved Hide resolved
UDATA objectDelta = (UDATA)object - base;
UDATA size = vmThread->omrVMThread->heapSizeForBarrierRange0;
if (objectDelta < size) {
/* object is old so check for concurrent barrier */
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This policy does not use a generational nursery and has only a flat "tenure" space. "Old" refers to that flat space. I imagine this was just a cut-and-paste remnant from some of the other barriers.

doc/compiler/JitWriteBarriers.md Outdated Show resolved Hide resolved
doc/compiler/JitWriteBarriers.md Show resolved Hide resolved
Describe the purpose and general operation of JIT write barriers for non-realtime
garbage collection policies.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
Copy link
Contributor

@fjeremic fjeremic left a comment

Choose a reason for hiding this comment

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

My concerns have been addressed. Will wait for others who reviewed to give approvals and we should go ahead and merge this very useful piece of documentation. Thanks for writing this!

@fjeremic fjeremic merged commit 95ba1bf into eclipse-openj9:master Feb 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants