[PATCH v2 07/13] coresight: perf: traceid: Add perf notifiers for Trace ID

Suzuki K Poulose suzuki.poulose at arm.com
Tue Jul 19 14:49:54 PDT 2022


Hi Mike,

On 04/07/2022 09:11, Mike Leach wrote:
> Adds in notifier calls to the trace ID allocator that perf
> events are starting and stopping.
> 
> This ensures that Trace IDs associated with CPUs remain the same
> throughout the perf session, and are only released when all perf
> sessions are complete.

The patch looks fine to me. I think it would be good to add the
definition of coresight_trace_id_perf_{stop,start}() in this patch.

> 
> Signed-off-by: Mike Leach <mike.leach at linaro.org>
> ---
>   drivers/hwtracing/coresight/coresight-etm-perf.c | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwtracing/coresight/coresight-etm-perf.c
> index c039b6ae206f..ad3fdc07c60b 100644
> --- a/drivers/hwtracing/coresight/coresight-etm-perf.c
> +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c
> @@ -22,6 +22,7 @@
>   #include "coresight-etm-perf.h"
>   #include "coresight-priv.h"
>   #include "coresight-syscfg.h"
> +#include "coresight-trace-id.h"
>   
>   static struct pmu etm_pmu;
>   static bool etm_perf_up;
> @@ -228,6 +229,9 @@ static void free_event_data(struct work_struct *work)
>   		*ppath = NULL;
>   	}
>   
> +	/* mark perf event as done for trace id allocator */
> +	coresight_trace_id_perf_stop();
> +
>   	free_percpu(event_data->path);
>   	kfree(event_data);
>   }
> @@ -314,6 +318,9 @@ static void *etm_setup_aux(struct perf_event *event, void **pages,
>   		sink = user_sink = coresight_get_sink_by_id(id);
>   	}
>   
> +	/* tell the trace ID allocator that a perf event is starting up */
> +	coresight_trace_id_perf_start();
> +
>   	/* check if user wants a coresight configuration selected */
>   	cfg_hash = (u32)((event->attr.config2 & GENMASK_ULL(63, 32)) >> 32);
>   	if (cfg_hash) {

Suzuki



More information about the linux-arm-kernel mailing list