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

8273797: Stop impersonating "server" VM in all VM variants #5526

Closed

Conversation

shipilev
Copy link
Contributor

@shipilev shipilev commented Sep 15, 2021

As the follow-up for Zero-specific JDK-8273494, we might want to clean up build system logic for all VM variants: stop impersonating "server" VMs for all of them. This basically leaves "core" and "custom" variants to be handled with this patch.

Additional testing:

  • Linux x86_64 core build passes, libjvm.so now in core, jvm.cfg mentions -core KNOWN
  • Linux x86_64 custom (+serialgc,+compiler2) build passes, libjvm.so now in custom, jvm.cfg mentions -custom KNOWN

Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Issue

  • JDK-8273797: Stop impersonating "server" VM in all VM variants

Reviewers

Reviewing

Using git

Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk pull/5526/head:pull/5526
$ git checkout pull/5526

Update a local copy of the PR:
$ git checkout pull/5526
$ git pull https://git.openjdk.java.net/jdk pull/5526/head

Using Skara CLI tools

Checkout this PR locally:
$ git pr checkout 5526

View PR using the GUI difftool:
$ git pr show -t 5526

Using diff file

Download this PR as a diff file:
https://git.openjdk.java.net/jdk/pull/5526.diff

@bridgekeeper
Copy link

@bridgekeeper bridgekeeper bot commented Sep 15, 2021

👋 Welcome back shade! 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.

@openjdk openjdk bot added the rfr label Sep 15, 2021
@openjdk
Copy link

@openjdk openjdk bot commented Sep 15, 2021

@shipilev The following labels will be automatically applied to this pull request:

  • build
  • core-libs

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added build core-libs labels Sep 15, 2021
@mlbridge
Copy link

@mlbridge mlbridge bot commented Sep 15, 2021

Webrevs

Copy link
Member

@dholmes-ora dholmes-ora left a comment

From a purely "mechanical" perspective this is a good simplification and cleanup.

Did you test building all variants into one image?

Cheers,
David

@openjdk
Copy link

@openjdk openjdk bot commented Sep 15, 2021

@shipilev 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:

8273797: Stop impersonating "server" VM in all VM variants

Reviewed-by: dholmes, erikj, ihse

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 41 new commits pushed to the master branch:

  • 6f3e40c: 8273825: TestIRMatching.java fails after JDK-8266550
  • a561eac: 8273895: compiler/ciReplay/TestVMNoCompLevel.java fails due to wrong data size with TieredStopAtLevel=2,3
  • d2388b7: 8273959: Some metaspace diagnostic switches should be develop
  • dc7f452: 8273815: move have_special_privileges to os_posix for POSIX platforms
  • 7c9868c: 8273454: C2: Transform (-a)(-b) into ab
  • bb9d142: 8273958: gtest/MetaspaceGtests executes unnecessary tests in debug builds
  • 2a2e919: 8273685: Remove jtreg tag manual=yesno for java/awt/Graphics/LCDTextAndGraphicsState.java & show test instruction
  • 8302061: 8273774: CDSPluginTest should only expect classes_nocoops.jsa exists on supported 64-bit platforms
  • 2f8c221: 8273681: Add Vector API vs Arrays.mismatch intrinsic benchmark
  • 17f7a45: 8273913: Problem list some headful client jtreg tests that fail on macOS 12
  • ... and 31 more: https://git.openjdk.java.net/jdk/compare/8fbcc8239a3fc04e56ebbd287c7bb5db731977b7...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.

➡️ To integrate this PR with the above commit message to the master branch, type /integrate in a new comment.

@openjdk openjdk bot added the ready label Sep 15, 2021
@shipilev
Copy link
Contributor Author

@shipilev shipilev commented Sep 15, 2021

Did you test building all variants into one image?

Yes, I did, but I think the build system is confused about the VM feature sets. I have a vague recollection that ether @magicus or someone else at one point suggested eliminating multi-variant builds, maybe that should be the next step in build simplification.

@shipilev
Copy link
Contributor Author

@shipilev shipilev commented Sep 16, 2021

@magicus, want to take a look as well?

@magicus
Copy link
Member

@magicus magicus commented Sep 20, 2021

Looks good. Thanks for waiting for my input; sorry for the delay.

@magicus
Copy link
Member

@magicus magicus commented Sep 20, 2021

As for eliminating multi-JVM builds: yes, that is on my agenda, but as long as I'm still just working part-time it's hard to make any headway in that direction. The next step is to create a --with-import-jvms=<name:path>,[<name:path>,...], so that it is possible to simulate a multi-JVM build by e.g.

bash configure --with-jvm-variant=zero --with-conf-name=zero-hotspot
make hotspot
bash configure --with-jvm-variant=server --with-conf-name=combined --with-import-jvms=zero:./build/$PLATFORM/jdk/lib/zero

or something like that.

When that exists and is working, and all downstream users has had time to adapt, then we can remove multi-JVM build support (and boy am I longing for that day).

If you want to help by implementing the --with-import-jvms options, you are more than welcome!

@shipilev
Copy link
Contributor Author

@shipilev shipilev commented Sep 21, 2021

Thanks!

/integrate

@openjdk
Copy link

@openjdk openjdk bot commented Sep 21, 2021

Going to push as commit f242cb5.
Since your change was applied there have been 63 commits pushed to the master branch:

  • 240fa6e: 8273927: Enable hsdis for riscv64
  • 9c91ff5: 8274031: Typo in StringBuilder.readObject
  • d16bf04: 8273613: JFR: RemoteRecordingStream::start() blocks close()
  • 7ce60c6: 8273651: JFR: onMetadata(), setStartTime(), setEndTime() lacks test coverage
  • 1bd11a7: 8273887: [macos] java/awt/color/ICC_ColorSpace/MTTransformReplacedProfile.java timed out
  • ee3576a: 8256735: JFR: 'jfr' tool displays incorrect timestamps
  • 5fde4b6: 8273909: vmTestbase/nsk/jdi/Event/request/request001 can still fail with "ERROR: new event is not ThreadStartEvent"
  • 04891c9: 8273912: Add threadControl_dumpThread(jthread) function
  • 5c21c00: 8267163: Rename anonymous loader tests to hidden loader tests
  • b3b4b1c: 8273907: Cleanup redundant Math.max/min calls in DefaultHighlighter
  • ... and 53 more: https://git.openjdk.java.net/jdk/compare/8fbcc8239a3fc04e56ebbd287c7bb5db731977b7...master

Your commit was automatically rebased without conflicts.

@openjdk openjdk bot closed this Sep 21, 2021
@openjdk openjdk bot added integrated and removed ready rfr labels Sep 21, 2021
@openjdk
Copy link

@openjdk openjdk bot commented Sep 21, 2021

@shipilev Pushed as commit f242cb5.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

@shipilev shipilev deleted the JDK-8273797-server-means-server branch Oct 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build core-libs integrated
4 participants