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.
This rather large commit adds unwind information eviction. This can be triggered in two ways: if an unwind information bucket is full, object file that last appeared in the profiles will be evicted to leave space for the new unwind info. There's also a new flag
(
--max-native-unwind-info-size-mb
) that will be used as a rough limit for the size of BPF maps used to store unwind information.By default there's no limit on the unwind info stored in BPF maps.
Additionally, there's a new event to notify of addresses don't have unwind information as now this can happen after an eviction.
Several other changes were made too, such as a bugfis on how the unwind info pages were being deleted, and the addition of
--enable-deadlock-detector
to start a thread that checks for deadlocks inparking_lot
's locking facilities.Future changes
Something that stood out during the development of this feature is that the generation of compact unwind information from .eh_frame data might be called more frequently. This is perhaps something worth caching on disk, but that'll happen in another PR.
Test Plan
Ran for a while without issues, also with lower memory limits set.