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

Support for concurrent scavenge on x86 #99

Closed
andrewcraik opened this issue Oct 3, 2018 · 5 comments
Closed

Support for concurrent scavenge on x86 #99

andrewcraik opened this issue Oct 3, 2018 · 5 comments
Assignees

Comments

@andrewcraik
Copy link

Issue or pull request number:
eclipse-openj9/openj9#3054

Overview:
The above issue is tracking a series of changes being made to OpenJ9 to support the pause-less garbage collector on the x86 platform. The pause-less garbage collector technology was originally implemented on the z architecture targeting the z14 hardware generation.

Applies to the following JDK versions:
8 and later

Applies to the following platforms:
64-bit Linux X / Windows

For new command line options:
-Xgc:concurrentScavenge

This is the same option as on z. It takes no options and has the affect as it does on z. At present we expect to support all currently supported x86 hardware running 64bit Linux or Windows. We will provide further updates as implementation and testing concludes if further restrictions / qualifications on this are necessary.

This option is supported only on the 64-bit JVM with the Generational Concurrent (gencon) garbage collection policy. When this mode is enabled, the JVM attempts to reduce GC pause-times for response-time sensitive, large heap applications.

@andrewcraik
Copy link
Author

@0dvictor and @amicic FYI I have created the docs issue for the addition of concurrent scavenge support on x86 - comment/emblish as necessary.

@SueChaplain
Copy link
Contributor

More info from Andrew:

Please note that for 0.11 the concurrent scavenger GC policy is only supported for x86 JVMs running with compressed references. If the maximum heap size (Xmx) exceeds the critical boundary (I believe around 63G) then we will switch to running without compressed references and concurrent scavenge will not be recognized/used. Support for nonCR builds will be added in the next few weeks post 0.11.

@pmhayward - we'll need to validate the around 63G. @amicic - can you confirm please?

@pshipton
Copy link
Member

The compressed refs switch occurs at 57GB. i.e. https://www.eclipse.org/openj9/docs/xcompressedrefs/

@amicic
Copy link
Contributor

amicic commented Oct 16, 2018

That is true, but I'll verify that the same boundary will be for when we end accepting -Xgc:concurrentScavenge. Interestingly, the boundary is 48G right now, but we still have one more change to be promoted regarding heap geometry. Once it's in I'll verify it.

@amicic
Copy link
Contributor

amicic commented Oct 17, 2018

All the changes for heap geometry are in and we (@dmitripivkine to be precise) just verified, that the 'magic' boundary for Concurrent Scavenger will be 57G (inclusive), or more generically the same boundary for which we can create Compressed Refs Heap.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants