[aarch64-port-dev ] Collaboration proposal: Draft JEP MacOS/AArch64 Port

Anton Kozlov akozlov at azul.com
Thu Aug 27 08:17:10 UTC 2020


It seems we are in a similar state.

Same problem with native_wrapper, e.g subsequent byte arguments are adjacent on stack[1]. So far we bailout when a-smaller-than-word-argument is allocated on stack (and use interpreted version). The problem is VMReg for stack slots does not able to encode stack places with bytes granularity. I think it is fine to allocate same (or none) stack VMReg for small arguments, but we have not tried that yet.

I think we've come up with the same or similar systematic approaches. I'm not ready to say I have something that is correct by construction for W^X, but I feel I'm close. A few latest iterations mostly works but a few edge cases makes me re-think about invariants. 


[1] https://developer.apple.com/library/archive/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html#//apple_ref/doc/uid/TP40013702-SW4

On 26.08.2020 23:39, Ludovic Henry wrote:
> Hi Anton,
> As Monica is on vacation, I just wanted to give a quick update on where we are standing.
> As of today, we have most of hotspot:tier1 and jdk:tier1 passing. The main remaining issues are around calling convention from the compiler into native (we already fixed it from the interpreter) and deprecated APIs in 11.0.0 (used in AWT, for example). We are not running into any major issue with W^X, and we have come up with a systematic approach that requires few modifications. On the deprecated APIs, we can easily dismiss the warnings with -Wno-deprecated-declarations, but that is not a long term fix.
> We'd love to have a chat with you to figure out how you would like to share learnings and join efforts. I'll contact you offline with some time proposals.
> Thank you,
> Ludovic
> -----Original Message-----
> From: hotspot-dev <hotspot-dev-retn at openjdk.java.net> On Behalf Of Anton Kozlov
> Sent: Thursday, August 13, 2020 6:04 AM
> To: Monica Beckwith <Monica.Beckwith at microsoft.com>
> Cc: aarch64-port-dev at openjdk.java.net; hotspot-dev Source Developers <hotspot-dev at openjdk.java.net>
> Subject: Re: Collaboration proposal: Draft JEP MacOS/AArch64 Port
> Hello Monica,
> Thank you for your proposal. It was a bit unexpected :) We would be happy to
> collaborate!
> Our mac/aarch64 port is in the R&D phase. At some point, maybe we (OpenJDK
> community) will need a project or repo for integration. But having win/aarch64
> integrated, it may happen that mac/aarch64 support will be just a series of
> considerably isolated changes. An example is "JDK-8250876: Fix issues with
> cross-compile on macos" [1]. If all changes will be such self-containing, they
> may be reviewed and integrated one-by-one. Probably we won't need a project.
> I think this work is blocked by the JEP for the new platform support. I'll 
> start a discussion email thread for that really soon.
> I hope we would be able to collaborate in all of the areas. I expect us to get
> soon to the point when we can start reviewing changes made for win/aarch64 and
> evaluate how do they fit mac/aarch64.
> Thanks,
> Anton
> [1] https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.openjdk.java.net%2Fbrowse%2FJDK-8250876&data=02%7C01%7Cluhenry%40microsoft.com%7C4623df4c26b74b3fc9fc08d83f8a4b37%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637329210503526908&sdata=etFFyw9zye9g5gGgRY%2BB%2FCsspLo0TZ8Ct0dTvB0aa98%3D&reserved=0
> On 11.08.2020 21:15, Monica Beckwith wrote:
>> Hello everyone, 
>> It gives me immense pleasure to see the draft JEP for 'MacOS/AArch64 Port' [1]. At Microsoft, we are in the process of expanding our CI infrastructure by adding Apple DevKits [2]. We are entirely in support of you and your team, @Anton Kozlov. You all bring your immense knowledge from the AArch32 port, and we welcome you and would like to extend our collaboration on the MacOS port. More specifically, we would like to work with you on the -  
>> . Implementation (low-level code additions, shared code modifications and maintenance, adhering to HotSpot coding style/conventions [3], etc.)  
>> . Testing (all regression, functional, integration and performance tests) 
>> . Integration to jdk/jdk (tip) 
>> Since the MacOS port work depends on the Windows port modifications, I propose a collaboration (sub-)Project [4] repo where we can jointly work in the open. 
>> If it is OK with you and your team, next week, I can propose the creation of a new (sub-)Project for 'jdk-mac' and send it out to mailto:discuss at openjdk.java.net and mailto:aarch64-port-dev at openjdk.java.net. Once we have a sponsor, we can send the info out on mailto:announce at openjdk.java.net. 
>> We can work on the details of these offline. Please let me know if you have already made traction on the (sub-)Project front, and we can jump in and help wherever you are. 
>> This is a wonderful opportunity for OpenJDK, and the team here at Microsoft is excited about the prospects, and we are looking forward to working with your team. 
>> Thanks, 
>> Monica
>> [1] https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopenjdk.java.net%2Fjeps%2F8251280&data=02%7C01%7Cluhenry%40microsoft.com%7C4623df4c26b74b3fc9fc08d83f8a4b37%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637329210503526908&sdata=oCZSZXoU9sDUpfyr4GXzxhrU0YrMFjAzTLgbcD1BNtc%3D&reserved=0
>> [2] https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdeveloper.apple.com%2Fprograms%2Funiversal%2F&data=02%7C01%7Cluhenry%40microsoft.com%7C4623df4c26b74b3fc9fc08d83f8a4b37%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637329210503526908&sdata=Taczc6541YW4mVDkkCzg4XLprCJMOgSi6I4oxtWhJW4%3D&reserved=0
>> [3] https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.openjdk.java.net%2Fdisplay%2FHotSpot%2FStyleGuide&data=02%7C01%7Cluhenry%40microsoft.com%7C4623df4c26b74b3fc9fc08d83f8a4b37%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637329210503526908&sdata=WLKmlWbb4oPkA7hN4Vz%2FE%2Ba6u52l7enipOvU0Gb3IgA%3D&reserved=0
>> [4] https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fopenjdk.java.net%2Fprojects%2F%23new-project&data=02%7C01%7Cluhenry%40microsoft.com%7C4623df4c26b74b3fc9fc08d83f8a4b37%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637329210503526908&sdata=aW1A%2BifN9I0fIcyHj7vGZFgvOI83h5t2ErlAu3u4z6M%3D&reserved=0

More information about the aarch64-port-dev mailing list