-
Notifications
You must be signed in to change notification settings - Fork 767
Add new keys for j9gc_modron_getConfigurationValueForKey() #21893
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
Conversation
|
||
break; | ||
case j9gc_modron_configuration_gcConcurrentMarkThreadCount: | ||
#if defined(OMR_GC_MODRON_CONCURRENT_MARK) |
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.
should we have a check for GC policy too?
this is only used for gencon and optavgpause
it's set to 1 regardless of the policy, so it would be incorrect to return 1 for optthruput or balanced.
for balanced we should probably return the number of total threads (mark increments are scheduled as parallel tasks with all available threads (questionable if it's optimal, but that's the state right now))
7e740c7
to
3d698a2
Compare
break; | ||
|
||
case j9gc_modron_configuration_gcUsesDynamicThreads: | ||
*((UDATA *)value) = if (extensions->gcThreadCountForced) ? TRUE : FALSE; |
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 condition should be reversed
Jenkins compile xLinux,aix,win jdk21 |
runtime/gc_include/j9modron.h
Outdated
@@ -98,6 +98,8 @@ typedef enum { | |||
j9gc_modron_configuration_compressObjectReferences, /* a UDATA (TRUE or FALSE) representing whether or not object references are compressed */ | |||
j9gc_modron_configuration_heapRegionShift, /* a UDATA representing the shift amount to convert an object pointer to the address of the region */ | |||
j9gc_modron_configuration_heapRegionStateTable, /* a pointer to the base of the region state table */ | |||
j9gc_modron_configuration_gcConcurrentThreadCount, /* a UDATA representing the MAX number of GC threads being used as Concurrent Mark Helpers */ |
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.
let's make the comment more generic: being used during concurrent GC operations
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.
Right. Missed update for this comment after we decided to extend request functionality. I am going to update this comment after completion of compilation jobs (in the case of you are not going to have functional change requests).
Add new key j9gc_modron_configuration_gcConcurrentThreadCount for j9gc_modron_getConfigurationValueForKey(). The output depends on GC policy: - Optthruput and Metronome don't use concurrent threads - Optavgpause uses Concurrent Marking Helper threads - Gencon also uses Concurrent Marking Helper threads but also if Concurrent Scavenger is active can use Concurrent Copy Helper threads at the same time. - Balanced can perform GMP increments concurrently and use all GC threads available. Also add new key j9gc_modron_configuration_gcUsesDynamicThreads. This request returns TRUE if using of dynamic GC threads is enabled. Signed-off-by: Dmitri Pivkine <[email protected]>
Add new key j9gc_modron_configuration_gcConcurrentMarkThreadCount for j9gc_modron_getConfigurationValueForKey().