rootwyrm / dns_docker

Complete DNS suite for use in Docker
Other
2 stars 0 forks source link

Investigate extremely slow compiling on arm #5

Open rootwyrm opened 4 years ago

rootwyrm commented 4 years ago

GitHub actions are just ruinously slow for both of these, with the arm64 and arm/v7 builds clocking in at a minimum 10x the amd64 and 386 builds. The worst hangs are clearly occurring in the cryptographic build sections.

This reproduces on hardware as well as qemu.

dnsbld@rivermane [~/dns_docker]$ uname -a; cat /etc/os-release ; time docker build
 unbound -t ubtest
Linux rivermane 5.4.34-0-rpi4 #1-Alpine SMP PREEMPT Wed Apr 22 20:03:53 UTC 2020 aarch64 Linux
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.11.6
PRETTY_NAME="Alpine Linux v3.11"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"
Sending build context to Docker daemon  26.11kB
Step 1/11 : FROM        docker.io/rootwyrm/dns_base:latest
...
Successfully tagged ubtest:latest
real    19m 13.00s
user    0m 0.57s
sys     0m 0.41s
rootwyrm commented 4 years ago

Seriously thinking about a qemu sucks ass category.

Travis CI pretty much illustrated exactly how bad qemu is at this job. When building on Travis CI arm64 native, compile time was the same as amd64. Not "slightly slower" not "faster"; the variance was margin of error.

The problem is that Travis CI has extremely limited runs, and is very immature and inflexible. You get ONE workflow that has to be EVERYTHING. It literally is not capable of doing what we need here without yanking out our own molars without anesthesia. And this isn't even remotely underselling just how bad it is.