Hi Magnus,

Happy to answer any question you have on the build system changes.

A lot of the changes were due to the build system not supporting 
cross-compilation well when targetting the microsoft toolchain (it just never 
really had to support it). We had to go through a few hoops to remove as many 
of our own quick hacks, initially there just to get things building - like 
hardcoding the target being windows-aarch64 for example.

Thank you for your review,

--
Ludovic

________________________________________
From: Magnus Ihse Bursie <magnus.ihse.bur...@oracle.com>
Sent: Wednesday, June 24, 2020 13:44
To: Monica Beckwith; hotspot-runtime-...@openjdk.java.net; 
aarch64-port-...@openjdk.java.net; build-dev
Cc: openjdk-aarch64
Subject: Re: OpenJDK extension to AArch64 and Windows

Hi Monica,

All build system changes must be sent to build-dev for review by the
build team, and you are doing quite a lot of build changes. (I'm cc:ing
build-dev now.)

I did a quick scan and found some changes that looked odd enough to draw
my attention.

I will need some time to fully understand what you are trying to
accomplish here, before I can give a full review.

/Magnus


On 2020-06-24 18:40, Monica Beckwith wrote:
> Hello OpenJDK community,
>
> As the project lead here @Microsoft, I am pleased to share that we have been 
> working towards a Windows addition to the OpenJDK AArch64 port. We are very 
> thankful to all that have contributed to the Linux+aarch64 and 
> Windows+x86-64. Both these codebases came to our rescue on numerous occasions.
>
> Support status: We have successfully ported C2 and can build the server 
> release (cross-compiled environment)
> Test coverage: C2 + ParallelGC (No AOT, JVMCI, ZGC, ShenandoahGC, G1GC)
> Tests and benchmarks covered [1]: JTReg [2], JCStress, 
> jmh-jdk-microbenchmarks, SPEC SERT, SPECJBB2015 [3], SPEC JVM2008, Scimark2, 
> SPEC JBB2005.
> Umbrella Bug ID: 
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.openjdk.java.net%2Fbrowse%2FJDK-8248238&amp;data=02%7C01%7Cluhenry%40microsoft.com%7Ce9de9dbe05294132270c08d8187f7608%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637286283002619088&amp;sdata=QXhd0zUDi2tqCLKiY%2F%2BKZzOzQNLirhq9WdxVAvogkqo%3D&amp;reserved=0
> Webrevs:
> `Webrev P1`: 
> https://nam06.safelinks.protection.outlook.com/?url=http:%2F%2Fcr.openjdk.java.net%2F~burban%2Fwinarm64_p1_llp64%2F&amp;data=02%7C01%7Cluhenry%40microsoft.com%7Ce9de9dbe05294132270c08d8187f7608%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637286283002619088&amp;sdata=I4NuehXTkw1U6pChqT7Po0e4m8CvPTgucp0BtMN%2FFGk%3D&amp;reserved=0
>   &
> `Webrev P2`: 
> https://nam06.safelinks.protection.outlook.com/?url=http:%2F%2Fcr.openjdk.java.net%2F~burban%2Fwinarm64_p2_new-target%2F&amp;data=02%7C01%7Cluhenry%40microsoft.com%7Ce9de9dbe05294132270c08d8187f7608%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637286283002619088&amp;sdata=UKxXrBjXUOM7Yw7qQ02TOujYnNp0W439FclIqoVs7mk%3D&amp;reserved=0
>
> The first patch `Webrev P1` (patch 1 aka P1 in our tests) helps integrate 
> support for Windows (LLP64) on Linux + AArch64
> The second patch `Webrev P2` (patch 2 aka P2 in our tests) adds the 
> 'windows-aarch64' support in `os_cpu`. We also had to modify shared code, and 
> I am highlighting a few details here:
>       * In windows_x86 such as the `get_frame_at_stack_banging_point` in 
> `os_windows_x86.cpp`,
>       * In `os/windows os_windows.cpp` to make it aware of Windows + Arm64
>       * `os/windows` in `threadCritical_windows.cpp`,
>       * Windbg support
>       * `globalDefinitions_visCPP.hpp` in `share/utilities`
>       * We also added Vectored Exception Handling (VEH) to P2, as it is a 
> requirement on Windows + Arm64 (due to ABI specifications).
> Also, in `Webrev P2`, you will find that we have made some significant 
> changes to `cpu/aarch64` around register usage since on Windows + Arm64, 
> register R18 points to TEB [4]. We have discussed this with Andrew Haley and 
> Andrew Dinn, and they are helping us with a cleaner implementation of the 
> same. Their constant support and guidance have humbled me.
>
> I'd also like to recognize the great work done by Ludovic Henry (our resident 
> runtime expert) in driving the C2 support and by Bernhard Urban-Forster, (who 
> recently joined our team) in helping expand the coverage to G1 GC.
>
> As a part of this project, we have also worked on two additional patches:
>       * Expanding VEH on Windows to x86-64 (patch 3 aka P3 in our tests). 
> Details here: 
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.openjdk.java.net%2Fbrowse%2FJDK-8247941&amp;data=02%7C01%7Cluhenry%40microsoft.com%7Ce9de9dbe05294132270c08d8187f7608%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637286283002629036&amp;sdata=cH8q0LmaYoV%2BZfiunRHJYTyHz3kfm2RpnC5phc9Th8c%3D&amp;reserved=0
>       * Improvements in the shared cross-platform code on Windows (patch 4 
> aka P4 in our tests) - We will send out a separate patch soon.
>
> We welcome any feedback and comments from the community and are looking 
> forward to working together.
>
> Regards,
> Monica
>
> [1] 
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fopenjdk-aarch64%2Fblob%2Fmaster%2Fwkload-status-on-Win%252BArm64.md&amp;data=02%7C01%7Cluhenry%40microsoft.com%7Ce9de9dbe05294132270c08d8187f7608%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637286283002629036&amp;sdata=eeZ80gPlXEgqSDrpeL3WR%2FtzVPUr6nSBG%2FN3wqX4Lcc%3D&amp;reserved=0
> [2] 
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fopenjdk-aarch64%2Fblob%2Fmaster%2FJTRegtests.md&amp;data=02%7C01%7Cluhenry%40microsoft.com%7Ce9de9dbe05294132270c08d8187f7608%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637286283002629036&amp;sdata=jpSyNBfEvDpvw8AJvBqg8nGj4rb54xqW1YtJA07K2mI%3D&amp;reserved=0
> [3] 
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fopenjdk-aarch64%2Fblob%2Fmaster%2FSPECJBB2015-test-matrices.md&amp;data=02%7C01%7Cluhenry%40microsoft.com%7Ce9de9dbe05294132270c08d8187f7608%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637286283002629036&amp;sdata=QKYnn7jIwZGxeEdAjsMeUXY%2BvZBvZlLQSkP9s8vY8Cg%3D&amp;reserved=0
> [4] 
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fcpp%2Fbuild%2Farm64-windows-abi-conventions%3Fview%3Dvs-2019%23integer-registers&amp;data=02%7C01%7Cluhenry%40microsoft.com%7Ce9de9dbe05294132270c08d8187f7608%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637286283002629036&amp;sdata=iy6RcczW2ipXYU%2B%2FD6mRRagLQxFjhZdCTqWcojeuqj0%3D&amp;reserved=0

Reply via email to