aarch64 emulation is unreasonably slow
The binfmt_misc
registration and use of qemu-aarch64
leads to an unreasonably slow (orders of magnitude compared to other foreign targets) execution.
The aarch64 media therefore take hours to create, as compared to tens of minutes for e.g. ppc64 on an x86_64 host.
02:03 <~awilfox> https://www.qemu.org/docs/master/system/arm/cpu-features.html
02:03 < Chessa> qemu.org: Arm CPU Features — QEMU documentation Assets: 0/9
02:04 <~awilfox> the default cpu profile enables a bunch of features that are hard to emulate performantly
02:04 <~awilfox> I no longer remember which ones give the biggest wins to =off but it was Quite A Thing™ the one time I actually did try to build all images on ppc64 (which was unsafe on grub 2.04, not sure about 2.12)
02:05 <~awilfox> the problem was grub's mkimage tool didn't do endianness right so even though it output EFI binaries they had a few structs in MSB/host order instead of LSB/target order
02:05 <~awilfox> maybe it is fixed? not sure. something to keep in mind tho. I think it's safe as long as host endian = target endian tho
02:06 <~awilfox> didn't notice any egregious failures in the tarballs for instance
02:15 <~awilfox> zv: try: qemu-aarch64 -cpu max,sve=off,pauth=off,pmu=off
02:16 <~awilfox> pauth does use crypto, by default the algorithm is not too computationally expensive but depending on your host env the default may be changed to one that is much better and much slower
02:16 <~awilfox> pmu is for performance tracing, like intel's pcm/perfcount - totally unneeded for image generation
02:16 <~awilfox> and sve is like arm's avx