Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cargo: build with frame pointers #10226

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Conversation

erikgrinaker
Copy link
Contributor

@erikgrinaker erikgrinaker commented Dec 22, 2024

Problem

Frame pointers are often disabled by default (depending on the architecture), since this frees up an additional CPU register. However, this makes stack unwinding more difficult, and it often has to rely on DWARF debug information which is very slow. With continuous profiling, cheaper stack unwinding will likely be a net win, and allow us to use higher sampling resolution.

This may cause some performance loss (TODO: benchmark), but typically <1% on 64-bit architectures. aarch64 architectures (used for Pageservers) also typically mandate the use of a dedicated frame pointer register, so this has no effect.

Resolves #10224.

Summary of changes

Enable frame pointers in all builds.

@erikgrinaker erikgrinaker changed the title cargo: build with fram pointers cargo: build with frame pointers Dec 22, 2024
Copy link

7095 tests run: 6798 passed, 0 failed, 297 skipped (full report)


Code coverage* (full report)

  • functions: 31.2% (8398 of 26877 functions)
  • lines: 48.0% (66682 of 139059 lines)

* collected from Rust tests only


The comment gets automatically updated with the latest test results
c89b06c at 2024-12-22T22:59:42.539Z :recycle:

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.

Build with frame pointers for improved profiling
1 participant