Skip to content

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

Merged
merged 1 commit into from
May 22, 2025

Conversation

dmitripivkine
Copy link
Contributor

Add new key j9gc_modron_configuration_gcConcurrentMarkThreadCount for j9gc_modron_getConfigurationValueForKey().


break;
case j9gc_modron_configuration_gcConcurrentMarkThreadCount:
#if defined(OMR_GC_MODRON_CONCURRENT_MARK)
Copy link
Contributor

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))

@dmitripivkine dmitripivkine force-pushed the master branch 2 times, most recently from 7e740c7 to 3d698a2 Compare May 21, 2025 19:19
@dmitripivkine dmitripivkine changed the title Add new key for number of Concurrent Mark Helper threads Add new keys for j9gc_modron_getConfigurationValueForKey() May 21, 2025
break;

case j9gc_modron_configuration_gcUsesDynamicThreads:
*((UDATA *)value) = if (extensions->gcThreadCountForced) ? TRUE : FALSE;
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 condition should be reversed

@dmitripivkine
Copy link
Contributor Author

Jenkins compile xLinux,aix,win jdk21

@@ -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 */
Copy link
Contributor

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

Copy link
Contributor Author

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]>
@dmitripivkine
Copy link
Contributor Author

dmitripivkine commented May 22, 2025

Before adding non-functional comment update preserving links to completed compile jobs on AIX, xLinux and Windows)

@amicic amicic merged commit 12a2fff into eclipse-openj9:master May 22, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants