[PATCH 2/2] coresight: etm-perf: Add AUX_NON_CONTIGUOUS_PAGES to cs_etm PMU

Leo Yan leo.yan at arm.com
Tue Apr 22 07:21:02 PDT 2025


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 at 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
> 
> 



More information about the linux-arm-kernel mailing list