Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Enable line-only debuginfo by default. #54459
Previously, only official builds (stable/beta/nightly) had
In my experience, when you have a panic/crash in
At least we can try to explore and discuss the tradeoffs involved here.
added a commit
this pull request
Sep 22, 2018
The debuginfo-only-std option was added in #38984 due to #37477 (backtraces super slow so
I recall that when preparing #45523 I found that backtraces, while much faster with malloc/free, were still noticeably slow with malloc/free. To that end I tested this out:
Ok great! Looks like there's no slowdown here at all. Testing out a random test case with an ICE we can also see:
Sure enough there's some nice line numbers in there! Furthermore these both take roughly the same amount of time (maybe 100ms difference at most).
All in all this seems fine by me, all the underlying bugs that motivated this decision originally have since been fixed, so it should be fine to do for our releases at least.
One final thing to consider is that debuginfo-lines takes more time to build (as it's more "gunk" for LLVM to chew through). Do we want this turned on by default for all developers? Or only turned on for our releases?
Hm, the perf build showed essentially no instruction difference but some possible wall time losses so I'd presume the slowdown lies somewhere outside of the core compiler - maybe copying/reading files is taking slightly longer due to increased size? @nnethercote, is there a chance you have some ideas about how we could try to narrow down the problem?
The comparison URL results look like noise to me. (I mostly ignore the
As for the 10-15 minutes difference, I am skeptical about how reliable those time measurements are. I recently had a PR that was tested for landing and failed because one job hit the 3 hour timeout limit. Then on the subsequent run it only took 2.5 hours or so. So I would suggest remeasuring multiple times to get more confidence.
I did two complete builds with the only difference being
Without line debuginfo, this took
(Unfortunately, this also built a tiny bit of LLVM -- 73 files -- as I only noticed after the fact.)
With line debuginfo, this took
In particular, stage1 compiler artifacts went up from
So, looks like line debuginfo makes the compiler around 10% slower. That's more than what I expected.
Build log without line debuginfo
Build log with line debuginfo
referenced this pull request
Oct 5, 2018
I don't think we have a great grasp on what the CI times here are, and we're already severely bleeding for CI times right now as most builds are pushing 2.5 hours when we ideally shoot for 2 hours. I would personally rather get build times under control before we continue to land minor build time regressions like this. We can make exceptions of course, but this seems like a nice-to-have rather than a hard requirement of something.