AArch64 in JDK 9?
Vladimir Kozlov
vladimir.kozlov at oracle.com
Sat Apr 19 19:23:15 UTC 2014
On 4/19/14 1:17 AM, Andrew Haley wrote:
> Hi,
>
> On 04/17/2014 11:16 AM, Volker Simonis wrote:
>>
>> I'd highly welcome your port in the main HotSpot tree!
>>
>> Unfortunately I'm not the decision maker here, but I can try to
>> outline the steps we took to bring in our port and cc some people
>> (Iris, Azeem) who may know how to help.
>>
>> - First of all we were told to and finally filed a JEP for the
>> integration project (in our case it was JEP 175: PowerPC/AIX Port -
>> http://openjdk.java.net/jeps/175). I think the main reason why this is
>> necessary is that such a project requires a certain amount of help
>> from Oracle and in order to get that you'll need to get your project
>> sponsored and funded. This all is formalized trough the JEP process.
>
> OK.
Yes, until JEP is funded we can do nothing from Oracle side. It could take time based on ppc-aix port experience.
>> - You'll probably need to have a "staging" repository as a mirror of
>> the current jdk9-dev forest. The staging repository will be kept in
>> sync with its mirror and additionally collect all your porting changes
>> as valid (i.e. in the sense of 'jcheck') and reviewed OpenJDK
>> changesets.
>
> Sure, I was planning to do that anyway. There is one thing I don't
> understand how to do, though. jcheck wants bug IDs for all changes,
> right? So does that mean that you have to create bug IDs when you
> create the staging repository?
Staging repository is created by cloning jdk9-dev forest. After that any changeset which will be pushed into that repo
have to have a valid changeset descriptor/comment:
http://openjdk.java.net/guide/producingChangeset.html
You have to file a separate bug in JBS for each patch, preferable with "AArch64:" prefix in bug's subject. Here is what
we had for first ppc64 changes:
https://bugs.openjdk.java.net/browse/JDK-8016476
https://bugs.openjdk.java.net/browse/JDK-8016491
It also helped a lot with ppc-aix port when SAP prepared list of all patches they wanted to push so we could preview
them and estimate needed efforts during JEP review:
http://hg.openjdk.java.net/ppc-aix-port/jdk8/hotspot/file/df79d76c17ab/ppc_patches/
It was also important to break the port into separate small/medium patches for easy review and testing.
Regards,
Vladimir
>
>> Once your port is completed in the staging repository, Oracle will
>> probably want to do some bigger testing on it before the complete
>> port will be bulk integrated into the main repositories. Notice
>> that we actually had two staging repositories, one for jdk8 and one
>> for jdk9. I'd suggest you start with jdk9 and once you're finished
>> with that and depending on your wishes, you may also do the same
>> with jdk8u. But notice that Oracle is not following the HotSpot
>> Express model any more. This means that downporting your AArch64
>> port to jdk8u will get continuously harder over time, even if you
>> manage to get into the main jdk9 repositories.
>>
>> - After we got the our JEP approved and funded, we created a detailed
>> "Integration Plan" in the OpenJDK Wiki (see
>> https://wiki.openjdk.java.net/pages/viewpage.action?pageId=13729959)
>> where we outlined the different integration steps in some more detail.
>> I assume that you mainly only have HotSpot changes, so in one sense
>> your integration plan will be simpler. On the other hand, bringing in
>> HotSpot changes is the more intricate part of a port integration
>> because you can not check in changes yourself, even if you are a
>> committer, because of the known infrastructure problems (i.e. the need
>> to run all the changes trough the Oracle-internal JPRT test system).
>
> Right.
>
>> There's also the problem that Oracle maintains some closed
>> repositories (e.g. their ppc ar arm ports) in parallel to the
>> OpenJDK repositories and changes in shared code may require
>> modifications in their closed ports. Therefore most changes to the
>> "staging" repository will have to be done by Oracle folks who can
>> take care of their proprietary port as well.
>
> Sure, I get that. I'll have to go over our code changes to see if
> anything affects non-AArch64 ports.
>
>> I'd therefore wait with the creation of a new repository as you
>> suggested until you synchronised with some of the Oracle folks. You
>> really need to find some good friends in the HotSpot group to get this
>> project done:)
>
> Well, yes. And this is going to get more common, I hope, so we need
> to establish a smooth pathway to help people get ports in.
>
> One interesting challenge here is that there really isn't much AArch64
> hardware around for other people to test on, but I hope that it will
> be common enough later in the year.
>
>> If you have any questions or if there's anything I can do please don't
>> hesitate to let me know.
>
> OK, I'll remember that.
>
> Thanks,
> Andrew.
>
More information about the hotspot-dev
mailing list