adoptium / temurin-build

Eclipse Temurin™ build scripts - common across all releases/versions
Apache License 2.0
1k stars 243 forks source link

RISC-V build plan #3591

Open luhenry opened 6 months ago

luhenry commented 6 months ago

In our current building and testing of Temurin on RISC-V, the main limiting factor to get to GA is the limited access to RISC-V boards. We are hoping to have access to more in the future, but even the ones we have access to today are slow or not available in enough quantity.

To alleviate the pressure on the pool of RISC-V boards we have, I am exploring building Temurin on QEMU on an aarch64/x86 host. The first succesfull run can be found at https://ci.adoptium.net/job/build-scripts/job/jobs/job/evaluation/job/jobs/job/jdk17u/job/jdk17u-evaluation-linux-riscv64-temurin/34/.

This work relies on the following PRs:

sxa commented 6 months ago

the main limiting factor to get to GA is the limited access to RISC-V boards

Hmmm just to give my view on this I would actually somewhat dispute that assertion as it's written - we do have over a dozen boards of various types in the CI and while they may not be highly performant they are generally capable of producing useful test output so I don't think that's directly blocking progress - but a few other things likely are: To my mind the real limiting factors which I've seen while working on this are:

Noting that on the first point, TRSS can help with the test analysis, although that has a prereq on the builds being scheduled regularly via the jobs such as https://ci.adoptium.net/job/build-scripts/job/evaluation-openjdk21-pipeline/ (Should be fixed as per the PR in the second bullet - note that's not currently publicly visible but we should fix that) but if it's useful we could potentially also have a tab on the ci.adoptium.net page for RISC-V which showed just the build and test jobs for that platform to make it easy to find the important ones to look at.

Obviously, proving it can pass in an RVV1.0 environment is highly desirable too (and a reasonable goal which could be solved with static docker containers or the dynamic ones from the second last bullet point) but if it doesn't fully pass anywhere we've got a bigger problem to solve :slightly_smiling_face:

luhenry commented 6 months ago

AIs from offline discussion:

Notes:

sxa commented 6 months ago

Provide bootjdk for jdk21u from TBD to docker image

For this, the best one to use is the one described in https://fosstodon.org/@sxa/111449356957539294 which was built in a way that will run in a container (still needs --security-opt secocomp=unconfined and on Ubuntu 20.04: https://api.adoptium.net/v3/binary/version/jdk-21.0.1+12.1-ea-beta/linux/riscv64/jdk/hotspot/normal/adoptium - that should be good as a bootstrap for JDK22 as well (The first build of that should happen on the next new tag in there, which is likely to be later today.

The other thing, which we didn't explicitly talk about, was that we'll need https://github.com/adoptium/temurin-build/issues/3378 fixed to be able to build the main jdk (jdk23 now) repository unless we also put a JDK22 into the image.

sxa commented 6 months ago

I've created a RISC-V view at https://ci.adoptium.net/view/RISC-V/ as a convenient way of viewing the jobs we're interested in for the purposes of this so we can see how many of them are having problems

sxa commented 6 months ago

Verified that 22 and 23 are now being triggered along with the other platforms but 23 is failing (as expected) due to the dirmngr error (third bullet point in the big list above)

sxa commented 6 months ago

New docker build image with the updated JDKs is being pushed as I write this :-)

luhenry commented 5 months ago

I'm doing a full run on jdk21u at https://ci.adoptium.net/job/build-scripts/job/jobs/job/evaluation/job/jobs/job/jdk21u/job/jdk21u-evaluation-linux-riscv64-temurin/112/console and collecting the test failures into https://github.com/adoptium/aqa-tests/issues/4976.

I'll do a full run on jdk17u next and collect the test failures into https://github.com/adoptium/aqa-tests/issues/4976 as well.

sxa commented 1 month ago

jdk17u pipeline: