Closed Bug 1796120 Opened 2 years ago Closed 1 year ago

compare sym file sizes with and without inline information

Categories

(Tecken :: General, task, P1)

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: willkg, Unassigned)

References

Details

Socorro and Tecken are suffering multiple service degradations that are likely due to the increase in sym file size from adding inline function information. The sym file size for several modules has been going up generally anyhow, so even without the sudden jump from inline function information, sym file sizes are rising and we probably need to adjust parts of how Socorro and Tecken work.

I would like to be able to analyze differences for specific modules (e.g. libxul.so) for August 2022 and late October 2022. August 2022 is well before we landed the change to running dump_syms to include --inline. Late October 2022 gives us enough time that the bulk of uploaded sym files will have been built with --inline. (We can pick different ranges.)

I need a way to take an existing sym file built with --inline and convert it to something roughly equivalent to what it would have looked like if it hadn't been built with --inline so I can compare the file size difference and memory usage differences across modules for multiple time periods.

We can ride the service degradations for now, but I'd like to have things figured out by the end of October 2022. First, I want to analyze how sym files changed with real data. Then that'll help me figure out which options are viable for fixing the service degradations.

In bug #1731367, we were thinking we could fix Eliot to drop INLINE and INLINE_ORIGIN lines from the sym file before parsing it and that would allow it to use sym files with inline function information without us having to fix sym file parsing to understand INLINE and INLINE_ORIGIN. Markus said that won't work for symbol lookup because it would return the innermost function and we want the outermost function.

However, I was thinking while it wouldn't result in a sym file that returns the correct symbols during lookup, we could drop the INLINE and INLINE_ORIGIN lines and get a file that's roughly equivalent to the file we would have gotten had we not capture inline function information.

Will that work? Will it result in a sym file that's not equivalent enough to compare file sizes?

Flags: needinfo?(mstange.moz)
Flags: needinfo?(gsvelto)
Product: Socorro → Tecken

I've prepped two try-runs building the same version of Firefox on our major platforms without and with inlines:

When they finish we can set aside the artifacts with the symbols for comparison.

Flags: needinfo?(gsvelto)

I looked at file sizes for the modules I was interested in from the Symbols server file data and that's good enough for now.

https://github.com/willkg/socorro-jupyter/blob/main/notebooks/bug_1796120_sym_sizes.ipynb

In https://bugzilla.mozilla.org/show_bug.cgi?id=1398533#c19, Gabriele mentioned that symbol file sizes would go up 4 or 5 times. I didn't catch that line at the time and was under the impression that the increase would be a lot less. Oh well.

Marking as FIXED.

Status: NEW → RESOLVED
Closed: 1 year ago
Flags: needinfo?(mstange.moz)
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.