-
Notifications
You must be signed in to change notification settings - Fork 728
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
Smooth migration story: mapping or supporting critical OpenJDK options #4930
Comments
Table of Contents
Related Changes
|
Just note that -Xlp format for object heap is |
Does the JVM pull this from the OS defined large pages? Eg On Linux this is called hugepages which is set to 2M by default.
If the user doubles Hugepagesize will the default value used by -Xlp (both objectheap and codecache) use that new value, or is the default value statically defined? |
@AlenBadel Do you know whether the We need to be careful that mapped options do the "right" thing on OpenJ9 that maps as closely as possible to the expected behaviour. |
Yes, on Hotspot VMs See
|
Hi @AlenBadel, here is document link for -Xconcurrentbackground (https://www.eclipse.org/openj9/docs/xconcurrentbackground/), I still think -Xconcurrentbackground option is the most close to -XX:ConcGCThreads=N on hotspot(-XconcurrentlevelN is Allocation “tax” rate, in OpenJ9 we do have different implementation, which ask mutator threads to pay “tax” during concurrent mark) |
No. Preferred page sizes for |
I agree. The objectheap then won't use the OS defined "Huge Pages"(Linux) unless we specify it using Need to figure out if this is the same case for the codecache. |
except it is hardcoded 2m for xLinux or 1m for zLinux |
@dmitripivkine |
Default value would be overwritten by option if requested |
That was what I meant. My apologies if that wasn't clear. |
I've updated the changes and mapping required #4930 (comment). |
Would it be possible to summarize the default HotSpot and OpenJ9 behaviour for the pages sizes? For example:
|
On Hotspot I don't have enough knowledge on how page sizes are chosen without specifying an option. As Dmitri commented:
As I've noted
Xlp does exactly the same.
No, we're simply mapping XX:+UseLargePages to (Xlp: Java8) (Xlp:objectheap and Xlp:codecache Java 9+)
-XX:LargePageSizeInBytes= overrides any hardcoded value, or default value with the size of the page passed in by the user. |
Why do you need to do something for Java 8 differently? Java 8 and higher should have identical implementations |
This was a consideration due to the deprecation of It would depend on the availability of |
From my understanding To avoid making changes to the mapping infrastructure, and implementing one to many mapping we could do one of two things. If using Keeping in mind that the codecache is much smaller than the objectheap. The performance yields would be higher using larger pages on an objectheap versus codecache. We can consider simply mapping |
I believe this is movement in wrong direction. |
Doesn't seem anything is happening here for the 0.17 release, moving to the next one. |
Not yet, as designed that's the intention. I'll link the issue you've created #8562. If that's broken, and that it's the case that 64K pages are not being used by default then it'll be fixed to make sure that 64K pages are used by default. |
I think this discussion is moving in a wrong direction again. I don't think the purpose of this issue is to fix/document everything about the current -Xlp behavior. I think all the design at #4930 (comment) should say is that -XX:UseLargePages will select page size and type in exactly the same way as -Xlp, except for zOS. Then, describe the zOS behavior. I think it was written that way at some point but then got lost after editing. Also I believe zOS is not supported by OpenJ9 so it's a bit sad that this issue is being delayed so much due to it. I also recommend to remove all the text in #4930 (comment) after the table since a lot of it is a duplication and only causes more confusion. And, of course, all the discovered bugs and potential improvements should be addressed in separate issues. |
@dmitripivkine Does #4930 (comment) answer your remaining concerns? @joransiu Just a reminder that I need your OK on Z/OS relevant proposals here. |
I've went ahead and cleaned this issue up a bit. There was a lot going on. I've created two children issues to address the options in two different groups. They're separated as general GC options, and large page related options. |
Seems this won't be resolved in the 0.20 release, moving it forward. |
As this wasn't resolved before branching for the 0.21 release, moving to the next. |
We are trying to add similar (possibly identical) functionality to OpenJDK's -XX:+AlwaysPreTouch here: #10386. Anything else we should do, if we match the option name? |
We should reuse the existing OpenJDK option and avoid introducing a similar feature under a different name. In general, all new options should be of the form |
moved to next milestone |
There is no activity or resources to work on this, put it to backlog |
While it needs to be investigated if there is any non -XX options still to be recognized (these are functional options in some senses ... I am aware of none), the priority is on mapping or supporting performance-sensitive critical OpenJDK options ... for migration or transparent drop-in.
I understood this is necessarily on-going, we have to collect this important set of -XX options. To start off, I listed the GC thread options (which are repetitively mentioned to be performance-sensitive when engaging clients), and other important options as they come up:
The text was updated successfully, but these errors were encountered: