-
Notifications
You must be signed in to change notification settings - Fork 736
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
WIP:RamClass: Segment allocation enhancements #20896
base: master
Are you sure you want to change the base?
Conversation
8be826c
to
de5ff00
Compare
161d945
to
7fc2a01
Compare
runtime/vm/createramclass.cpp
Outdated
@@ -2997,17 +3017,18 @@ internalCreateRAMClassFromROMClassImpl(J9VMThread *vmThread, J9ClassLoader *clas | |||
allocationRequests[RAM_CLASS_FLATTENED_CLASS_CACHE].alignment = OMR_MAX(sizeof(J9Class *), sizeof(UDATA)); | |||
allocationRequests[RAM_CLASS_FLATTENED_CLASS_CACHE].alignedSize = flattenedClassCacheAllocSize; | |||
allocationRequests[RAM_CLASS_FLATTENED_CLASS_CACHE].address = NULL; | |||
allocationRequests[RAM_CLASS_FLATTENED_CLASS_CACHE].segmentKind = SUB4G; |
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.
why is this sub4g?
9b66ef1
to
2ed701c
Compare
The changes reflect the feature request eclipse-openj9#20644. Adding segment categories for RAMClass fragments: sub4G Frequently accessed Infrequently accessed Closes: eclipse-openj9#20644 Signed-off-by: Nick Kamal <[email protected]>
2ed701c
to
2f1befc
Compare
@@ -2925,67 +2934,78 @@ internalCreateRAMClassFromROMClassImpl(J9VMThread *vmThread, J9ClassLoader *clas | |||
} | |||
allocationRequests[RAM_SUPERCLASSES_FRAGMENT].alignedSize = OMR_MAX(superclassSizeBytes, minimumSuperclassArraySizeBytes); | |||
allocationRequests[RAM_SUPERCLASSES_FRAGMENT].address = NULL; | |||
allocationRequests[RAM_SUPERCLASSES_FRAGMENT].segmentKind = SUB4G; |
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.
if I don't put the shared class fragments in sub4g then these extended.openjdk
tests fail: SharedClasses.SCM01.MultiThread_1,SharedClasses.SCM23.MultiThread_1
|
||
/* Add sizeof(UDATA) to hold the "lastAllocatedClass" pointer */ | ||
newSegmentSize += sizeof(UDATA); | ||
if(!isNotLoadedByAnonClassLoader) |
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 have been trying to figure out how to deal with anonymous class fragments but I am stuck.
There is comment in cleanUpSegmentsInAnonymousClassLoader
function that /* Anonymous classes expected to be allocated one per segment */
. That function causes segfault without this code for one of the sanity.perf
tests
all jenkins tests passing for the current shelve |
@gacholio Please take a look |
Has there been any testing or performance analysis on this? |
jenkins compile xlinux jdk17,jdk11 |
The changes reflect the feature request #20644.
Adding segment categories for RAMClass fragments:
sub4G
Frequently accessed
Infrequently accessed
Closes: #20644
Signed-off-by: Nick Kamal <[email protected]>