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

lbr call-stack support #242

Open
tilsche opened this issue Dec 12, 2022 · 2 comments
Open

lbr call-stack support #242

tilsche opened this issue Dec 12, 2022 · 2 comments

Comments

@tilsche
Copy link
Member

tilsche commented Dec 12, 2022

With perf --call-graph lbr, has more reliable call stack support. And it should be fine on intel these days, apparently available since Haswell. However, it is (still) not supported by AMD processors (tested with Zen2/Rome).

@cvonelm
Copy link
Member

cvonelm commented Dec 12, 2022

From what I've read, we would ideally extend our existing --call-graph option so that --call-graph=lbr gives us LBR and --call-graph=fp (mirroring perfs nomenclature) would give us traditional call stack recording.

On supported platforms, LBR would be chosen as default (hopefully easily identifiable by trying to perf_event_open sampling with LBR), as there is no apparent downside to using LBR.

@cvonelm
Copy link
Member

cvonelm commented May 8, 2023

Branch issue-242-lbr-support contains a draft of support for last branch records.

Initial results look promising, with the samples providing perfect backtraces almost all of the time.

However, the distribution of samples appears weird. During a run of lo2s with FIRESTARTER as a payload, almost all samples came from inside of lo2s.

Wrt this weirdness and the undocumented perf behaviour black magic envolved in creating traces with LBRs, we should continue to keep frame pointers as the default sampling option.;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants