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
8253795: Implementation of JEP 391: macOS/AArch64 Port #715
Conversation
|
This backport pull request has now been updated with issues from the original commit. |
@VladimirKempik |
@VladimirKempik |
@VladimirKempik |
@VladimirKempik |
@VladimirKempik |
@VladimirKempik |
@VladimirKempik |
@VladimirKempik |
@VladimirKempik |
@VladimirKempik |
Webrevs
|
Testing revealed the need to include https://bugs.openjdk.java.net/browse/JDK-8262896 into this PR as well. |
8262896: [macos_aarch64] Crash in jni_fast_GetLongField
/issue 8262896 |
|
@VladimirKempik |
Together with #716 the hotspot can be built without warnings, some warning in splashscreen yet. |
This is an extremely difficult patch to review. I'll be soliciting other people's advice to help understand the risk versus reward ratio to bring this in to mainline. |
Crashlog with hsdis - https://pastebin.com/5kz2vfEH SIGBUS (0xa) at pc=0x000000012100bbfc, pid=76024, tid=39683 #128 Pretty strange, @theRealAph, any idea ? a snippet from macos's crashlog for java Exception Type: EXC_BAD_ACCESS (SIGABRT) VM Regions Near 0x12103bdac: 38 libjvm.dylib 0x0000000107541f1c JVM_handle_bsd_signal + 820 (os_bsd_aarch64.cpp:471) |
Looks like it was two missing WX transitions in JNI_QUICK_ENTRY and JVM_QUICK_ENTRY That explains everything, except the macos version reproducibility, which is probably due to the difference in library calls leaving different w^x state up on exit. @ahmedmuhsin, when you will have a time, please check the updated PR on macos 11.0.1 or 11.2.1, for me it doesn't crash anymore |
@VladimirKempik I tested again on all the OS versions that I mentioned above and everything looks very good. No crashes. Thanks! |
@rnkovacs , parts of your jep-388 backport ( VladimirKempik@7bdb8ac7f9f9#diff-0f4150a9c607ccd590bf256daa800c0276144682a92bc6bdced5e8bc1bb81f3aL1495, VladimirKempik@7bdb8ac7f9f9#diff-0f4150a9c607ccd590bf256daa800c0276144682a92bc6bdced5e8bc1bb81f3aL1558, VladimirKempik@7bdb8ac7f9f9#diff-0f4150a9c607ccd590bf256daa800c0276144682a92bc6bdced5e8bc1bb81f3aL1671 ) results in more warning for this PR: /Users/runner/work/jdk11u-dev/jdk11u-dev/jdk/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp:1495:52: error: format specifies type 'unsigned long long' but the argument has type 'uintptr_t' (aka 'unsigned long') [-Werror,-Wformat] was these three changes really needed or can I revert them ? reverting these three lines will allow me to fix macos-aarch64 github CI job ( https://github.com/VladimirKempik/jdk11u-dev/runs/5106043614?check_suite_focus=true ) |
On 2/8/22 06:48, VladimirKempik wrote:
@rnkovacs , parts of your jep-388 backport reverted ( VladimirKempik@7bdb8ac7f9f9#diff-0f4150a9c607ccd590bf256daa800c0276144682a92bc6bdced5e8bc1bb81f3aL1495, VladimirKempik@7bdb8ac7f9f9#diff-0f4150a9c607ccd590bf256daa800c0276144682a92bc6bdced5e8bc1bb81f3aL1558, VladimirKempik@7bdb8ac7f9f9#diff-0f4150a9c607ccd590bf256daa800c0276144682a92bc6bdced5e8bc1bb81f3aL1671 ) results in more warning for this PR:
/Users/runner/work/jdk11u-dev/jdk11u-dev/jdk/src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp:1495:52: error: format specifies type 'unsigned long long' but the argument has type 'uintptr_t' (aka 'unsigned long') [-Werror,-Wformat]
snprintf(buffer, sizeof(buffer), PTR64_FORMAT, imm64);
~~~~~~~~~~~~ ^~~~~
1 error generated.
was these three changes really needed or can I revert them ?
What does this refer to? I can't find any such thing in the current state of the patch.
|
These three line changes are part of jep-388 (win-arm64) backport to jdk11u-dev, they cause troubles ( warnings which are under Werror becomes an issue) so I wonder why did they became part of jep-388 backport to jdk11u-dev |
There can be no good reason for an incorrect change, so please do that. |
Ok. |
@VladimirKempik should I submit a PR to backport 8241004: NMT tests fail on unaligned thread size with debug build or is it already on your radar? The backport solves issue 2 from my post here: #715 (comment) |
Please proceed with 8241004, I have few other macarm related issues on my radar atm. |
@theRealAph what do you think, is this PR ready to go jdk11u-dev ? |
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.
This looks good enough.
Oracle has pulled this into their java11 - https://bugs.openjdk.java.net/browse/JDK-8275573 @GoeLin is there anything holding us from getting approval for 11u ? |
/integrate |
Going to push as commit eb0708f.
Your commit was automatically rebased without conflicts. |
@VladimirKempik Pushed as commit eb0708f. |
Initial version of JEP-391 backport to jdk11u.
Build system changes are mostly clean, except cds disabling part, it's copy&paste from aix part.
Things needing attention: os_bsd_aarch64.cpp and W^X transitions.
serviceability agent is mostly clean.
This passed GHA_tier1 testing.
Full regression testing is running now on Azul's infra, will report/update PR when done.
Update: TCK passed, full regression testing is fine on intel platforms, macos/aarch64/openjdk11 is good compared to macos/aarch64/zulu11
Sharing this PR slightly earlier to let other interested parties to run the tests too.
Example of cross-building on intel mac (needs Xcode12/13):
sh configure --with-boot-jdk=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/ --with-build-jdk=/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/ --disable-warnings-as-errors --openjdk-target=aarch64-apple-darwin
Progress
Issues
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.java.net/jdk11u-dev pull/715/head:pull/715
$ git checkout pull/715
Update a local copy of the PR:
$ git checkout pull/715
$ git pull https://git.openjdk.java.net/jdk11u-dev pull/715/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 715
View PR using the GUI difftool:
$ git pr show -t 715
Using diff file
Download this PR as a diff file:
https://git.openjdk.java.net/jdk11u-dev/pull/715.diff