]> www.infradead.org Git - users/hch/misc.git/commit
perf: Extend per event callchain limit to branch stack
authorKan Liang <kan.liang@linux.intel.com>
Mon, 10 Mar 2025 18:15:36 +0000 (11:15 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 17 Mar 2025 10:23:36 +0000 (11:23 +0100)
commitc53e14f1ea4a8f8ddd9b2cd850fcbc0d934b79f5
treed115929cd988038f64bd3535167f7545c4327198
parentc96fff391c095c11dc87dab35be72dee7d217cde
perf: Extend per event callchain limit to branch stack

The commit 97c79a38cd45 ("perf core: Per event callchain limit")
introduced a per-event term to allow finer tuning of the depth of
callchains to save space.

It should be applied to the branch stack as well. For example, autoFDO
collections require maximum LBR entries. In the meantime, other
system-wide LBR users may only be interested in the latest a few number
of LBRs. A per-event LBR depth would save the perf output buffer.

The patch simply drops the uninterested branches, but HW still collects
the maximum branches. There may be a model-specific optimization that
can reduce the HW depth for some cases to reduce the overhead further.
But it isn't included in the patch set. Because it's not useful for all
cases. For example, ARCH LBR can utilize the PEBS and XSAVE to collect
LBRs. The depth should have less impact on the collecting overhead.
The model-specific optimization may be implemented later separately.

Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20250310181536.3645382-1-kan.liang@linux.intel.com
include/linux/perf_event.h
include/uapi/linux/perf_event.h