-
Notifications
You must be signed in to change notification settings - Fork 722
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
Conversation
@Akira1Saitoh @knn-k FYI |
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.
Thanks for writing this!
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.
Minor grammatical errors.
Thanks for writing this up Daryl.
Also worth adding |
UDATA objectDelta = (UDATA)object - base; | ||
UDATA size = vmThread->omrVMThread->heapSizeForBarrierRange0; | ||
if (objectDelta < size) { | ||
/* object is old so check for concurrent barrier */ |
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.
I've got a question. What is old
object in non-generational GC policy? What exactly is objectDelta < size
checking here?
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.
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.
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.
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.
UDATA objectDelta = (UDATA)object - base; | ||
UDATA size = vmThread->omrVMThread->heapSizeForBarrierRange0; | ||
if (objectDelta < size) { | ||
/* object is old so check for concurrent barrier */ |
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.
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.
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>
baed020
to
19abd1e
Compare
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.
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!
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