On Mon, Apr 21, 2025 at 02:58:18PM -0700, Yabin Cui wrote:
The cs_etm PMU, regardless of the underlying trace sink (ETF, ETR or TRBE), doesn't require contiguous pages for its AUX buffer.
Though contiguous pages are not mandatory for TRBE, I would set the PERF_PMU_CAP_AUX_NO_SG flag for it. This can potentially benefit performance.
For non per CPU sinks, it is fine to allocate non-contiguous pages.
Thanks, Leo
This patch adds the PERF_PMU_CAP_AUX_NON_CONTIGUOUS_PAGES capability to the cs_etm PMU. This allows the kernel to allocate non-contiguous pages for the AUX buffer, reducing memory fragmentation when using cs_etm.
Signed-off-by: Yabin Cui yabinc@google.com
drivers/hwtracing/coresight/coresight-etm-perf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwtracing/coresight/coresight-etm-perf.c index f4cccd68e625..c98646eca7f8 100644 --- a/drivers/hwtracing/coresight/coresight-etm-perf.c +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c @@ -899,7 +899,8 @@ int __init etm_perf_init(void) int ret; etm_pmu.capabilities = (PERF_PMU_CAP_EXCLUSIVE |
PERF_PMU_CAP_ITRACE);
PERF_PMU_CAP_ITRACE |
PERF_PMU_CAP_AUX_NON_CONTIGUOUS_PAGES);
etm_pmu.attr_groups = etm_pmu_attr_groups; etm_pmu.task_ctx_nr = perf_sw_context; -- 2.49.0.805.g082f7c87e0-goog