-
Notifications
You must be signed in to change notification settings - Fork 152
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
8159720: Failure of C2 compilation with tiered prevents some C1 compilations #161
Conversation
👋 Welcome back yyang! A progress list of the required criteria for merging this PR into |
This backport pull request has now been updated with issue and summary from the original commit. |
@kelthuzadx This change now passes all automated pre-integration checks. After integration, the commit message for the final commit will be:
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 3 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the 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 (@phohensee) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
@rwestrel Could you please review this? Thanks! |
The backport is clean so no review required? |
Technically, yes. But for C2 backports to 8u I'd like for an C2 expert to be OK with it before approving. Is that a reasonable backport to have? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lgtm. This backport doesn't affect C2 itself, it just allows C1 to compile methods that C2 can't.
Tagged the JBS issue. |
Thanks for reviews. /integrate (It seems that I'm supposed to integrate this after jdk8-fix-yes tagged.) |
@kelthuzadx |
I agree with @kelthuzadx that it's low risk and as it was seen to help in the "real world", then backporting makes sense. |
Thanks! |
/sponsor |
Going to push as commit 6e563e5.
Your commit was automatically rebased without conflicts. |
@phohensee @kelthuzadx Pushed as commit 6e563e5. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
### What changes were proposed in this pull request? This PR aims to deprecate old Java 8 versions prior to 8u362. ### Why are the changes needed? 8u362 fixed a performance issue: openjdk/jdk8u-dev#161 Benchmark code: ```scala val dir = "/tmp/spark/benchmark" val N = 2000000 val columns = Range(0, 100).map(i => s"id % $i AS id$i") spark.range(N).selectExpr(columns: _*).write.mode("Overwrite").parquet(dir) val cnt = 60 val selectExps = columns.take(cnt).map(_.split(" ").last).map(c => s"count(distinct $c)") val start = System.currentTimeMillis() spark.read.parquet(dir).selectExpr(selectExps: _*).collect() println(s"Benchmark result. Java version: ${System.getProperty("java.version")}. Time(ms): ${System.currentTimeMillis() - start}") ``` 8u352 benchmark result: ```shell export JAVA_HOME=/Users/yumwang/Downloads/zulu8.66.0.15-ca-jdk8.0.352-macosx_x64 export PATH=${JAVA_HOME}/bin:${PATH} bin/spark-shell --master "local[2]" -i benchmark.scala Benchmark result. Java version: 1.8.0_352. Time(ms): 641155 ``` 8u362 benchmark result: ```shell export JAVA_HOME=/Users/yumwang/Downloads/zulu8.68.0.19-ca-jdk8.0.362-macosx_x64 export PATH=${JAVA_HOME}/bin:${PATH} bin/spark-shell --master "local[2]" -i benchmark.scala Benchmark result. Java version: 1.8.0_362. Time(ms): 79360 ``` ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? N/A. Closes #39671 from wangyum/SPARK-40303. Authored-by: Yuming Wang <yumwang@ebay.com> Signed-off-by: Dongjoon Hyun <dongjoon@apache.org>
8u backport request: Spark observes a significant performance deterioration between jdk17 and jdk8, too many live locals prevent C2 from compilation and it refreshes all tiers of results, please see SPARK-40303 for more details and explanations. This fix makes C2 compilation failure not affect C1. Low risk and apply clean.
Please help review it, thanks in advance.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk8u-dev pull/161/head:pull/161
$ git checkout pull/161
Update a local copy of the PR:
$ git checkout pull/161
$ git pull https://git.openjdk.org/jdk8u-dev pull/161/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 161
View PR using the GUI difftool:
$ git pr show -t 161
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk8u-dev/pull/161.diff