Skip to content

enable minimal debuginfo#334

Open
bcressey wants to merge 2 commits intobottlerocket-os:developfrom
bcressey:minimal-debuginfo
Open

enable minimal debuginfo#334
bcressey wants to merge 2 commits intobottlerocket-os:developfrom
bcressey:minimal-debuginfo

Conversation

@bcressey
Copy link
Contributor

Issue number:
Fixes #219

Description of changes:
Ensure that minimal debuginfo covering functions and line numbers is included in all binaries. This makes it straightforward to use tools like perf to profile a running system and graph function calls.

Disable the various macros that extract and compress debuginfo, since that causes the minimal debuginfo to be extracted and packaged inside separate RPMs.

For downstream variants using EROFS to compress the root filesystem, the overall cost is around 5% increased disk usage, or around 15 MiB for a 300 MiB install. That's about the same as adding another Go program to the default install.

Testing done:
aws-k8s-1.35 root filesystem utilization:

architecture before after
aarch64 271M 285M
x86_64 310M 326M

These numbers also include space savings from #333.

Terms of contribution:

By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.

Ensure that minimal debuginfo covering functions and line numbers is
included in all binaries. This makes it straightforward to use tools
like `perf` to profile a running system and graph function calls.

Disable the various macros that extract and compress debuginfo, since
that causes the minimal debuginfo to be extracted and packaged inside
separate RPMs.

For downstream variants using EROFS to compress the root filesystem,
the overall cost is around 5% increased disk utilization, or around
15 MiB for a 300 MiB install. That's about the same as adding another
Go program to the default install.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
Ensure that minimal debuginfo is available for both C libraries, in
case they are statically linked into binaries.

Signed-off-by: Ben Cressey <bcressey@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Bottlerocket-specific debuginfod service for improved profiling and debugging

2 participants