x86_64 allyesconfig timeouts with LLVM
Recently, I have noticed an uptick in build timeouts in our -tip builds, specifically x86_64 allyesconfig (although I have seen that same configuration timeout on other builds, just not with this frequency). I know that the call depth tracking series did wreck compile times at one point but that should be addressed now with commit 19526717f768 ("objtool: Optimize elf_dirty_reloc_sym()"). I did some benchmarking with close to the same version of LLVM 15 that TuxSuite uses:
TuxSuite: Debian clang version 15.0.4-++20221031075725+08bd84e8a635-1~exp1~20221031075736.90
Me: Ubuntu clang version 15.0.4-++20221102053308+5c68a1cb1231-1~exp1~20221102053355.92
The difference in commits does not seem like it should have an impact for the sake of these benchmarks:
5c68a1cb1231 AMDGPU: Make various vector undefs legal
80a9fc840b1b [clang][Sema] Fix a clang crash with btf_type_tag
I ran some tests to see what the difference between mainline and -tip is on the following machines. You can see my benchmarking script here. It does not use tuxmake
but I can rerun the benchmarks with it if it would be interesting.
- Intel Xeon Gold 6314U (32 cores, 64 threads):
Benchmark 1: mainline
Time (mean ± σ): 921.351 s ± 1.636 s [User: 40318.326 s, System: 2616.656 s]
Range (min … max): 920.147 s … 923.213 s 3 runs
Benchmark 2: tip
Time (mean ± σ): 962.334 s ± 1.493 s [User: 40382.675 s, System: 2622.855 s]
Range (min … max): 961.381 s … 964.055 s 3 runs
Summary
'mainline' ran
1.04 ± 0.00 times faster than 'tip'
- Intel Core i7-11700 (8 cores, 16 threads):
Benchmark 1: mainline
Time (mean ± σ): 1862.430 s ± 0.215 s [User: 25502.286 s, System: 1548.355 s]
Range (min … max): 1862.277 s … 1862.675 s 3 runs
Benchmark 2: tip
Time (mean ± σ): 1895.926 s ± 0.582 s [User: 25518.318 s, System: 1566.150 s]
Range (min … max): 1895.304 s … 1896.458 s 3 runs
Summary
'mainline' ran
1.02 ± 0.00 times faster than 'tip'
- AMD Ryzen 4300G (4 cores, 8 threads):
Benchmark 1: mainline
Time (mean ± σ): 5208.567 s ± 4.773 s [User: 36607.856 s, System: 2901.039 s]
Range (min … max): 5204.118 s … 5213.608 s 3 runs
Benchmark 2: tip
Time (mean ± σ): 5238.249 s ± 8.441 s [User: 36586.288 s, System: 2879.857 s]
Range (min … max): 5228.568 s … 5244.074 s 3 runs
Summary
'mainline' ran
1.01 ± 0.00 times faster than 'tip'
While there is clearly a difference between mainline and tip, it does not seem like it should be large enough to cause the builds to timeout, unless they were already up against the limit to begin with. Is there any more information that can be provided around these timeouts?