jdk
jdk copied to clipboard
JDK-8328272: [AIX] Use flag kind "diagnostic" for platform specific flags
Current platform implementation (globals_aix.hpp) uses regular product flags for almost everything. Most platform specific flags were never intended for official support. They are only there to diagnose issues and find workarounds. So flag kind "diagnostic" fits better for them.
Progress
- [ ] Change must be properly reviewed (1 review required, with at least 1 Reviewer)
- [x] Change must not contain extraneous whitespace
- [x] Commit message must refer to an issue
- [ ] Change requires CSR request JDK-8328304 to be approved
Issues
- JDK-8328272: [AIX] Use flag kind "diagnostic" for platform specific flags (Enhancement - P4)
- JDK-8328304: [AIX] Use flag kind "diagnostic" for platform specific flags (CSR)
Reviewing
Using git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/18337/head:pull/18337
$ git checkout pull/18337
Update a local copy of the PR:
$ git checkout pull/18337
$ git pull https://git.openjdk.org/jdk.git pull/18337/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 18337
View PR using the GUI difftool:
$ git pr show -t 18337
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/18337.diff
Webrev
:wave: Welcome back jkern! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.
@JoKern65 This change now passes all automated pre-integration checks.
ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.
After integration, the commit message for the final commit will be:
8328272: [AIX] Use flag kind "diagnostic" for platform specific flags
Reviewed-by: mdoerr, stuefe
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.
At the time when this comment was updated there had been 95 new commits pushed to the master branch:
- 940d1965f831a9f7e4f1ce34e381c038827c7ca2: 8328604: remove on_aix() function
- d44aaa37f98dd383aebbec097427feb1f1c29b74: 8326643: JDK server does not send a dummy change_cipher_spec record after HelloRetryRequest message
- 9bc741d04f0c2e731f67ac21144812a55d0ea03d: 8328339: Static import prevents source launcher from finding class with main method
- 256d48b19694e86bb26d67ed56de8ac94a31f4ff: 8327980: Convert javax/swing/JToggleButton/4128979/bug4128979.java applet test to main
- 177b8a241c11782b302607c0068b15b38112e67c: 8327840: Automate javax/swing/border/Test4129681.java
- da009214f19f73965495b8462c9dcff5db8ae7ae: 8320404: Double whitespace in SubTypeCheckNode::dump_spec output
- 4d36c4adcc47630ddc7149c48c06dc8a93c1be5c: 8328285: GetOwnedMonitorInfo functions should use JvmtiHandshake
- 0efd9dc09b969846f79fb8ca16ddf565117d52b6: 8328398: Convert java/awt/im/4490692/bug4490692.html applet test to main
- 46809b396ca76210f7939c8edf5a8263c29d3ddb: 8324736: Invalid end positions for EMPTY_STATEMENT
- f7f291c5d4d2d01dab3ccda7518ebc13f6bd58f6: 8328301: Convert Applet test ManualHTMLDataFlavorTest.java to main program
- ... and 85 more: https://git.openjdk.org/jdk/compare/07194195cefc568048fa639b6f8534ce3718c8d2...master
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.
As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@TheRealMDoerr, @tstuefe) but any other Committer may sponsor as well.
➡️ To flag this PR as ready for integration with the above commit message, type /integrate in a new comment. (Afterwards, your sponsor types /sponsor in a new comment to perform the integration).
@JoKern65 The following label will be automatically applied to this pull request:
hotspot-runtime
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.
Please be aware that this can cause problems with customers who update the JVM to this patch and have one of these settings set in production. Their JVMs may not come up after this change.
To use diagnostic flags, you need to specify "-XX:UnlockDiagnosticVMOptions" to unlock them, otherwise the JVM will not come up. Which is the reason such changes usually need CSRs.
Up to you if you risk it, ultimately. But I think MaxExpectedDataSegmentSize is needed and pretty commonly used. I would leave that one a product flag.
I think this is acceptable for a new Java release. We just shouldn't backport it. Do you really think anybody sets one of these flags in production?
Are you aware of any MaxExpectedDataSegmentSize user other than in SAP JVM 8?
I leave it up to you guys to decide if you prefer keeping that one a regular product flag.
@tstuefe I'm fine with keeping MaxExpectedDataSegmentSize
The one I'm most interested to get rid of is Use64KPages. And I think you too, because then we can eliminate the 4K Pages support.
What about making the remaining 4 flags diagnostic in jdk23 and removing at least Use64KPages in jdk24?
I think this is acceptable for a new Java release. We just shouldn't backport it. Do you really think anybody sets one of these flags in production? Are you aware of any
MaxExpectedDataSegmentSizeuser other than in SAP JVM 8? I leave it up to you guys to decide if you prefer keeping that one a regular product flag.
MaxExpectedDataSegmentSize is needed because of the implicit problem with AIX that libc only allocates in sbrk. So, like on Solaris, this will always be an issue where we need a flag in case the breathing room for the libc is not large enough. Either that, or we need to completely avoid allocating at arbitrary wish addresses, which makes coops friendly heap and class space less coops friendly.
@tstuefe I'm fine with keeping
MaxExpectedDataSegmentSizeThe one I'm most interested to get rid of isUse64KPages. And I think you too, because then we can eliminate the 4K Pages support. What about making the remaining 4 flags diagnostic in jdk23 and removing at leastUse64KPagesin jdk24?
Sounds good to me.
/integrate
@JoKern65 Your change (at version 5cf1259ab388a309e007e4be225a01ae3c6442d7) is now ready to be sponsored by a Committer.
/sponsor
Going to push as commit b334a8e5fc2c05e9e64402ca8185f3ab5140b3a7.
Since your change was applied there have been 96 commits pushed to the master branch:
- e669d14d4789f0047e8ef2112798f92ed28b31ca: 8328671: Mark
allocate_new_tlabandunsafe_max_tlab_allocofCollectedHeapaspure virtual - 940d1965f831a9f7e4f1ce34e381c038827c7ca2: 8328604: remove on_aix() function
- d44aaa37f98dd383aebbec097427feb1f1c29b74: 8326643: JDK server does not send a dummy change_cipher_spec record after HelloRetryRequest message
- 9bc741d04f0c2e731f67ac21144812a55d0ea03d: 8328339: Static import prevents source launcher from finding class with main method
- 256d48b19694e86bb26d67ed56de8ac94a31f4ff: 8327980: Convert javax/swing/JToggleButton/4128979/bug4128979.java applet test to main
- 177b8a241c11782b302607c0068b15b38112e67c: 8327840: Automate javax/swing/border/Test4129681.java
- da009214f19f73965495b8462c9dcff5db8ae7ae: 8320404: Double whitespace in SubTypeCheckNode::dump_spec output
- 4d36c4adcc47630ddc7149c48c06dc8a93c1be5c: 8328285: GetOwnedMonitorInfo functions should use JvmtiHandshake
- 0efd9dc09b969846f79fb8ca16ddf565117d52b6: 8328398: Convert java/awt/im/4490692/bug4490692.html applet test to main
- 46809b396ca76210f7939c8edf5a8263c29d3ddb: 8324736: Invalid end positions for EMPTY_STATEMENT
- ... and 86 more: https://git.openjdk.org/jdk/compare/07194195cefc568048fa639b6f8534ce3718c8d2...master
Your commit was automatically rebased without conflicts.
@TheRealMDoerr @JoKern65 Pushed as commit b334a8e5fc2c05e9e64402ca8185f3ab5140b3a7.
:bulb: You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.