Messages in this thread | | | From | Martin Lau <> | Subject | Re: [PATCH bpf] bpf: Add LBR data to BPF_PROG_TYPE_PERF_EVENT prog context | Date | Fri, 6 Dec 2019 06:55:05 +0000 |
| |
On Thu, Dec 05, 2019 at 04:12:26PM -0800, Daniel Xu wrote: > Last-branch-record is an intel CPU feature that can be configured to > record certain branches that are taken during code execution. This data > is particularly interesting for profile guided optimizations. perf has > had LBR support for a while but the data collection can be a bit coarse > grained. > > We (Facebook) have recently run a lot of experiments with feeding > filtered LBR data to various PGO pipelines. We've seen really good > results (+2.5% throughput with lower cpu util and lower latency) by > feeding high request latency LBR branches to the compiler on a > request-oriented service. We used bpf to read a special request context > ID (which is how we associate branches with latency) from a fixed > userspace address. Reading from the fixed address is why bpf support is > useful. > > Aside from this particular use case, having LBR data available to bpf > progs can be useful to get stack traces out of userspace applications > that omit frame pointers. > > This patch adds support for LBR data to bpf perf progs. Please re-submit when bpf-next opens.
| |