-
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
Enable scan all slots in a class during Scavenge #7636
Enable scan all slots in a class during Scavenge #7636
Conversation
@dmitripivkine please review the change, Thanks |
3046e45
to
6d7e7f9
Compare
6d7e7f9
to
b8a22de
Compare
move variable _enableScanConstantPoolObjects to ScavengerDelegate |
After discussion with @DanHeidinga we are going to enable CP scan all Java versions including Java 8. So it means we don't need |
b8a22de
to
67c5464
Compare
done |
67c5464
to
4963b32
Compare
now the code has been updated to scan all class related objects during scavenge, performance test result: 2% regression on scavenge pause for gencon mode, 6.25% regression for concurrent scavenge. |
while (NULL != (slotPtr = (omrobjectptr_t*)constantPoolObjectSlotIterator.nextSlot())) { | ||
if (NULL != *slotPtr) { | ||
doConstantPoolObjectSlots((omrobjectptr_t *)slotPtr); | ||
} | ||
} | ||
#endif /* J9VM_GC_MODRON_SCAVENGER */ |
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 believe GC_ClassIterator
should be used here as well. Obviously it would require some code refactoring: you can replace poisonStaticClassSlots(env)
and poisonConstantPoolObjects(env)
by one method poisonClassSlots(env)
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.
update the code to replace poisonConstantPoolObjects(), poisonStaticClassSlots()
with poisonClass() for ReadBarrierVerifier
d7a60f8
to
20da633
Compare
Remove _condyOnly and _condyEnabled from GC_ConstantPoolObjectSlotIterator Scan whole class objects(classStatics,constantPoolObject, callSites, methodTypes, varHandlesMethodTypes, valueTypesIterator) during Scavenge. Replace poisonConstantPoolObjects(), poisonStaticClassSlots() with poisonClass() for ReadBarrierVerifier. (only the class, which contains the object references are in nursery, will be scaned) Signed-off-by: Lin Hu <linhu@ca.ibm.com>
20da633
to
62114fa
Compare
Jenkins test sanity xLinux jdk11 |
The UNB machines are all down until Thursday night due to Lab work. Maybe relaunch on zLinux in the mean time for the PR build? |
Jenkins compile win jdk8 |
right, thanks |
Jenkins test sanity zLinux jdk11 |
Merging based on zLinux and Win testing. xLinux build is not available at the moment |
fix: #7486
Signed-off-by: Lin Hu linhu@ca.ibm.com