Enable native code on aarch64-*-openbsd*#11092
Conversation
|
I tried the same thing on FreeBSD/aarch64 and NetBSD/aarch64 but a few items in the testsuite fail. In FreeBSD: In NetBSD: (both tested on RaspberryPi4) Did you not get any errors in the testsuite with OpenBSD? |
|
OpenBSD -current as of February 1st with OCaml -trunk as of today.
Current state: |
|
|
Those failing tests |
|
No failing tests when running with
The slowest tests by a huge margin where: |
Yeah I noticed that as well on FreeBSD. These are the ones that timeout with the default value for I was also able to get no failures at all on FreeBSD with Did you try several times? Were the results stable on OpenBSD? |
|
No, I ran it only once. I'll run it a few more times. |
|
In both cases I think the observed slowdowns could be explained by non-fairness of the system thread scheduler (I vaguely remember fairness issues causing failures in other systhreads tests in the past.) The spawn_burn tests are doing a lot of computation and have a lot of contention on the domain synchronization mechanisms. They involve doing GCs in an infinite loop while some "work domains" try to get a fixed amount of work done. If the scheduler always give CPU time to the GC-ing domains, and never to the "work domain", the test could go on indefinitely. We could avoid this by fixing in advance the amount of iterations of the GC loops. weaklifetime_par depends on domain-local gc statistics in a way that may also make it very sensitive to fairness between domains: its termination condition for each domain is that the domain has "seen" 5 major GCs, but in some conditions it may be that the number of major GCs is not counted accurately, and basically never increased from some domains perspective (if: they never start the major GCs themselves, and there isn't enough minor collections to make them "sample" the major GCs done by the other domain). We mentioned avenues for improving the test in #11008 (comment) . (The "bug" discussed in that issue is not the fairness issue per se, but fixing one would probably fix the other as well.) I'm planning to work on this in the coming weeks. |
|
ok. Thanks for the your insights. Those issues don't seem to be specific for aarch64, but rather scheduler / OS specific. So those very slow tests are no blocker for this PR. |
kit-ty-kate
left a comment
There was a problem hiding this comment.
Those issues don't seem to be specific for aarch64, but rather scheduler / OS specific. So those very slow tests are no blocker for this PR.
I agree.
|
Just pushed f225a9a to fix this PR's Changes entry. |
This follows up on #10828 (comment)
OCaml builds fine on OpenBSD/aarch64, the testsuite is currently running.