Skip to content
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

Scan Queue splitting defaults #4780

Merged
merged 1 commit into from
Jan 29, 2020

Conversation

amicic
Copy link
Contributor

@amicic amicic commented Jan 27, 2020

Simplify the heuristic for Marking and Scavenge Scan Queue splitting
defaults.

The rule is simple: one queue per 8 GC threads, which is less than what
we now use, especially for low number of threads.

This rule has already been used for allocation lock splitting with
success, for a long time.

Some more additional stress testing with Scavenger with 4x smaller
workunit (32K cache size) has been performed and no regression (lock
contention causing longer GC times) was seen.

Potential benefit of this simplification is that the cost of checking if
the global cache/packet pool is full/empty will be much lower, what will
be important for Concurrent Scavenge that will used this info as an scan
loop exit criteria.

Signed-off-by: Aleksandar Micic amicic@ca.ibm.com

@amicic
Copy link
Contributor Author

amicic commented Jan 27, 2020

@dmitripivkine please, take a look

Simplify the heuristic for Marking and Scavenge Scan Queue splitting
defaults.

The rule is simple: one queue per 8 GC threads, which is less than what
we now  use, especially for low number of threads.

This rule has already been used for allocation lock splitting with
success, for a long time.

Some more additional stress testing with Scavenger with 4x smaller
workunit (32K cache size) has been performed and no regression (lock
contention causing longer GC times) was seen.

Potential benefit of this simplification is that the cost of checking if
the global cache/packet pool is full/empty will be much lower, what will
be important for Concurrent Scavenge that will used this info as an scan
loop exit criteria.

Signed-off-by: Aleksandar Micic <amicic@ca.ibm.com>
@amicic amicic changed the title WIP: Scan Queue splitting defaults Scan Queue splitting defaults Jan 28, 2020
@amicic
Copy link
Contributor Author

amicic commented Jan 29, 2020

@youngar or @rwy0717, please proceed with further review

@rwy7 rwy7 self-assigned this Jan 29, 2020
@rwy7
Copy link
Contributor

rwy7 commented Jan 29, 2020

@genie-omr build all

@youngar youngar assigned youngar and unassigned rwy7 Jan 29, 2020
@youngar
Copy link
Contributor

youngar commented Jan 29, 2020

The AIX build failed do to a known infrastructure issue, details are on the OMR slack.

16:27:20  Scanning dependencies of target omrutiltest
16:27:20  ld: 0711-415 WARNING: Symbol omrsig_primary_signal is already exported.
16:27:20  ld: 0711-415 WARNING: Symbol omrsig_handler is already exported.
16:27:20  ld: 0711-415 WARNING: Symbol signal is already exported.
16:27:20  ld: 0711-415 WARNING: Symbol omrsig_primary_sigaction is already exported.
16:27:20  ld: 0711-415 WARNING: Symbol sigaction is already exported.
16:27:20  ld: 0711-415 WARNING: Symbol sigset is already exported.
16:27:20  ld: 0711-415 WARNING: Symbol sigignore is already exported.
16:27:20  ld: 0711-415 WARNING: Symbol bsd_signal is already exported.
16:27:20  ld: 0711-415 WARNING: Symbol sysv_signal is already exported.
16:27:20  ld: 0711-317 ERROR: Undefined symbol: .pthread_sigmask

@youngar youngar merged commit 6d5cab8 into eclipse-omr:master Jan 29, 2020
@amicic amicic deleted the split_param_defaults branch July 3, 2020 17:48
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.

5 participants