Add information to .eh_frame ELF secion about make_fcontext function.#321
Merged
olk merged 1 commit intoboostorg:developfrom Dec 27, 2025
Merged
Add information to .eh_frame ELF secion about make_fcontext function.#321olk merged 1 commit intoboostorg:developfrom
olk merged 1 commit intoboostorg:developfrom
Conversation
Contributor
Author
|
I am working on PR to clang to make stack walking times better in case of missed frames (See llvm/llvm-project#167849 ). But while generic solution is not ready, small local fix here seems resasonable. |
Contributor
Author
|
On our test binary these changes speed up stack unwinding rather strong. Time of construction of Before changes: 5071µs |
Member
|
ty |
robot-piglet
pushed a commit
to userver-framework/userver
that referenced
this pull request
Jan 13, 2026
PR in upstream repository boostorg/context#321. These changes required to speed up stack unwinding in coroutine context. commit_hash:3873a3caa887c3b158e6ad9e179743eb18dc6ea7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Clang version of libunwind uses long linear scan of the .eh_frame section if it fails to find frame information in .eh_frame_hdr.
That causes long times of stack unwinding in case when current stack has frames with missed FDE records, so it is better to have information about all frames in the stack up until frame which marks return address ad "undefined/unrecoverable".