All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] coresight: Patches for v5.12 (perf tools)
@ 2021-02-24 16:48 Mathieu Poirier
  2021-02-24 16:48 ` [PATCH 1/6] perf: cs-etm: update ETM metadata format Mathieu Poirier
                   ` (8 more replies)
  0 siblings, 9 replies; 16+ messages in thread
From: Mathieu Poirier @ 2021-02-24 16:48 UTC (permalink / raw)
  To: acme; +Cc: mike.leach, leo.yan, linux-kernel

Good day Arnaldo,

I noticed there is a couple of patchsets [1][2] that haven't made it
to your tree for the coming v5.12 cycle.  Do you think that can still
be done? 

I tallied the patches here to make it easier for you to pick up.

Applies cleanly on perf/core (84b7725536d8)

Thanks,
Mathieu

[1]. https://lore.kernel.org/lkml/20210202214040.32349-1-mike.leach@linaro.org/
[2]. https://lore.kernel.org/lkml/20210213113220.292229-1-leo.yan@linaro.org/

Leo Yan (2):
  tools headers UAPI: Update tools' copy of linux/coresight-pmu.h
  perf cs-etm: Add helper cs_etm__get_pid_fmt()

Mike Leach (1):
  perf: cs-etm: update ETM metadata format

Suzuki K Poulose (3):
  perf cs-etm: Fix bitmap for option
  perf cs-etm: Support PID tracing in config
  perf cs-etm: Detect pid in VMID for kernel running at EL2

 tools/include/linux/coresight-pmu.h           |  20 +-
 tools/perf/arch/arm/util/cs-etm.c             |  76 +++--
 .../perf/util/cs-etm-decoder/cs-etm-decoder.c |  38 ++-
 tools/perf/util/cs-etm.c                      | 277 +++++++++++++++---
 tools/perf/util/cs-etm.h                      |  31 +-
 5 files changed, 368 insertions(+), 74 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/6] perf: cs-etm: update ETM metadata format
  2021-02-24 16:48 [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Mathieu Poirier
@ 2021-02-24 16:48 ` Mathieu Poirier
  2021-02-24 16:48 ` [PATCH 2/6] tools headers UAPI: Update tools' copy of linux/coresight-pmu.h Mathieu Poirier
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Mathieu Poirier @ 2021-02-24 16:48 UTC (permalink / raw)
  To: acme; +Cc: mike.leach, leo.yan, linux-kernel

From: Mike Leach <mike.leach@linaro.org>

The current fixed metadata version format (version 0), means that adding
metadata parameter items renders files from a previous version of perf
unreadable. Per CPU parameters appear in a fixed order, but there is no
field to indicate the number of ETM parameters per CPU.

This patch updates the per CPU parameter blocks to include a NR_PARAMs
value which indicates the number of parameters in the block.

The header version is incremented to 1. Fixed ordering is retained,
new ETM parameters are added to the end of the list.

The reader code is updated to be able to read current version 0 files,
For version 1, the reader will read the number of parameters in the
per CPU block. This allows the reader to process older or newer files
that may have different numbers of parameters than in use at the
time perf was built.

Signed-off-by: Mike Leach <mike.leach@linaro.org>
Reviewed-by: Leo Yan <leo.yan@linaro.org>
Tested-by: Leo Yan <leo.yan@linaro.org>

Link: https://lore.kernel.org/r/20210202214040.32349-1-mike.leach@linaro.org
---
 tools/perf/arch/arm/util/cs-etm.c |   7 +-
 tools/perf/util/cs-etm.c          | 235 ++++++++++++++++++++++++------
 tools/perf/util/cs-etm.h          |  30 +++-
 3 files changed, 223 insertions(+), 49 deletions(-)

diff --git a/tools/perf/arch/arm/util/cs-etm.c b/tools/perf/arch/arm/util/cs-etm.c
index bd446aba64f7..b0470f2a955a 100644
--- a/tools/perf/arch/arm/util/cs-etm.c
+++ b/tools/perf/arch/arm/util/cs-etm.c
@@ -572,7 +572,7 @@ static void cs_etm_get_metadata(int cpu, u32 *offset,
 				struct auxtrace_record *itr,
 				struct perf_record_auxtrace_info *info)
 {
-	u32 increment;
+	u32 increment, nr_trc_params;
 	u64 magic;
 	struct cs_etm_recording *ptr =
 			container_of(itr, struct cs_etm_recording, itr);
@@ -607,6 +607,7 @@ static void cs_etm_get_metadata(int cpu, u32 *offset,
 
 		/* How much space was used */
 		increment = CS_ETMV4_PRIV_MAX;
+		nr_trc_params = CS_ETMV4_PRIV_MAX - CS_ETMV4_TRCCONFIGR;
 	} else {
 		magic = __perf_cs_etmv3_magic;
 		/* Get configuration register */
@@ -624,11 +625,13 @@ static void cs_etm_get_metadata(int cpu, u32 *offset,
 
 		/* How much space was used */
 		increment = CS_ETM_PRIV_MAX;
+		nr_trc_params = CS_ETM_PRIV_MAX - CS_ETM_ETMCR;
 	}
 
 	/* Build generic header portion */
 	info->priv[*offset + CS_ETM_MAGIC] = magic;
 	info->priv[*offset + CS_ETM_CPU] = cpu;
+	info->priv[*offset + CS_ETM_NR_TRC_PARAMS] = nr_trc_params;
 	/* Where the next CPU entry should start from */
 	*offset += increment;
 }
@@ -674,7 +677,7 @@ static int cs_etm_info_fill(struct auxtrace_record *itr,
 
 	/* First fill out the session header */
 	info->type = PERF_AUXTRACE_CS_ETM;
-	info->priv[CS_HEADER_VERSION_0] = 0;
+	info->priv[CS_HEADER_VERSION] = CS_HEADER_CURRENT_VERSION;
 	info->priv[CS_PMU_TYPE_CPUS] = type << 32;
 	info->priv[CS_PMU_TYPE_CPUS] |= nr_cpu;
 	info->priv[CS_ETM_SNAPSHOT] = ptr->snapshot_mode;
diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c
index a2a369e2fbb6..ee32d023e9bd 100644
--- a/tools/perf/util/cs-etm.c
+++ b/tools/perf/util/cs-etm.c
@@ -2435,7 +2435,7 @@ static bool cs_etm__is_timeless_decoding(struct cs_etm_auxtrace *etm)
 }
 
 static const char * const cs_etm_global_header_fmts[] = {
-	[CS_HEADER_VERSION_0]	= "	Header version		       %llx\n",
+	[CS_HEADER_VERSION]	= "	Header version		       %llx\n",
 	[CS_PMU_TYPE_CPUS]	= "	PMU type/num cpus	       %llx\n",
 	[CS_ETM_SNAPSHOT]	= "	Snapshot		       %llx\n",
 };
@@ -2443,6 +2443,7 @@ static const char * const cs_etm_global_header_fmts[] = {
 static const char * const cs_etm_priv_fmts[] = {
 	[CS_ETM_MAGIC]		= "	Magic number		       %llx\n",
 	[CS_ETM_CPU]		= "	CPU			       %lld\n",
+	[CS_ETM_NR_TRC_PARAMS]	= "	NR_TRC_PARAMS		       %llx\n",
 	[CS_ETM_ETMCR]		= "	ETMCR			       %llx\n",
 	[CS_ETM_ETMTRACEIDR]	= "	ETMTRACEIDR		       %llx\n",
 	[CS_ETM_ETMCCER]	= "	ETMCCER			       %llx\n",
@@ -2452,6 +2453,7 @@ static const char * const cs_etm_priv_fmts[] = {
 static const char * const cs_etmv4_priv_fmts[] = {
 	[CS_ETM_MAGIC]		= "	Magic number		       %llx\n",
 	[CS_ETM_CPU]		= "	CPU			       %lld\n",
+	[CS_ETM_NR_TRC_PARAMS]	= "	NR_TRC_PARAMS		       %llx\n",
 	[CS_ETMV4_TRCCONFIGR]	= "	TRCCONFIGR		       %llx\n",
 	[CS_ETMV4_TRCTRACEIDR]	= "	TRCTRACEIDR		       %llx\n",
 	[CS_ETMV4_TRCIDR0]	= "	TRCIDR0			       %llx\n",
@@ -2461,26 +2463,167 @@ static const char * const cs_etmv4_priv_fmts[] = {
 	[CS_ETMV4_TRCAUTHSTATUS] = "	TRCAUTHSTATUS		       %llx\n",
 };
 
-static void cs_etm__print_auxtrace_info(__u64 *val, int num)
+static const char * const param_unk_fmt =
+	"	Unknown parameter [%d]	       %llx\n";
+static const char * const magic_unk_fmt =
+	"	Magic number Unknown	       %llx\n";
+
+static int cs_etm__print_cpu_metadata_v0(__u64 *val, int *offset)
 {
-	int i, j, cpu = 0;
+	int i = *offset, j, nr_params = 0, fmt_offset;
+	__u64 magic;
 
-	for (i = 0; i < CS_HEADER_VERSION_0_MAX; i++)
-		fprintf(stdout, cs_etm_global_header_fmts[i], val[i]);
+	/* check magic value */
+	magic = val[i + CS_ETM_MAGIC];
+	if ((magic != __perf_cs_etmv3_magic) &&
+	    (magic != __perf_cs_etmv4_magic)) {
+		/* failure - note bad magic value */
+		fprintf(stdout, magic_unk_fmt, magic);
+		return -EINVAL;
+	}
+
+	/* print common header block */
+	fprintf(stdout, cs_etm_priv_fmts[CS_ETM_MAGIC], val[i++]);
+	fprintf(stdout, cs_etm_priv_fmts[CS_ETM_CPU], val[i++]);
+
+	if (magic == __perf_cs_etmv3_magic) {
+		nr_params = CS_ETM_NR_TRC_PARAMS_V0;
+		fmt_offset = CS_ETM_ETMCR;
+		/* after common block, offset format index past NR_PARAMS */
+		for (j = fmt_offset; j < nr_params + fmt_offset; j++, i++)
+			fprintf(stdout, cs_etm_priv_fmts[j], val[i]);
+	} else if (magic == __perf_cs_etmv4_magic) {
+		nr_params = CS_ETMV4_NR_TRC_PARAMS_V0;
+		fmt_offset = CS_ETMV4_TRCCONFIGR;
+		/* after common block, offset format index past NR_PARAMS */
+		for (j = fmt_offset; j < nr_params + fmt_offset; j++, i++)
+			fprintf(stdout, cs_etmv4_priv_fmts[j], val[i]);
+	}
+	*offset = i;
+	return 0;
+}
+
+static int cs_etm__print_cpu_metadata_v1(__u64 *val, int *offset)
+{
+	int i = *offset, j, total_params = 0;
+	__u64 magic;
+
+	magic = val[i + CS_ETM_MAGIC];
+	/* total params to print is NR_PARAMS + common block size for v1 */
+	total_params = val[i + CS_ETM_NR_TRC_PARAMS] + CS_ETM_COMMON_BLK_MAX_V1;
 
-	for (i = CS_HEADER_VERSION_0_MAX; cpu < num; cpu++) {
-		if (val[i] == __perf_cs_etmv3_magic)
-			for (j = 0; j < CS_ETM_PRIV_MAX; j++, i++)
+	if (magic == __perf_cs_etmv3_magic) {
+		for (j = 0; j < total_params; j++, i++) {
+			/* if newer record - could be excess params */
+			if (j >= CS_ETM_PRIV_MAX)
+				fprintf(stdout, param_unk_fmt, j, val[i]);
+			else
 				fprintf(stdout, cs_etm_priv_fmts[j], val[i]);
-		else if (val[i] == __perf_cs_etmv4_magic)
-			for (j = 0; j < CS_ETMV4_PRIV_MAX; j++, i++)
+		}
+	} else if (magic == __perf_cs_etmv4_magic) {
+		for (j = 0; j < total_params; j++, i++) {
+			/* if newer record - could be excess params */
+			if (j >= CS_ETMV4_PRIV_MAX)
+				fprintf(stdout, param_unk_fmt, j, val[i]);
+			else
 				fprintf(stdout, cs_etmv4_priv_fmts[j], val[i]);
-		else
-			/* failure.. return */
+		}
+	} else {
+		/* failure - note bad magic value and error out */
+		fprintf(stdout, magic_unk_fmt, magic);
+		return -EINVAL;
+	}
+	*offset = i;
+	return 0;
+}
+
+static void cs_etm__print_auxtrace_info(__u64 *val, int num)
+{
+	int i, cpu = 0, version, err;
+
+	/* bail out early on bad header version */
+	version = val[0];
+	if (version > CS_HEADER_CURRENT_VERSION) {
+		/* failure.. return */
+		fprintf(stdout, "	Unknown Header Version = %x, ", version);
+		fprintf(stdout, "Version supported <= %x\n", CS_HEADER_CURRENT_VERSION);
+		return;
+	}
+
+	for (i = 0; i < CS_HEADER_VERSION_MAX; i++)
+		fprintf(stdout, cs_etm_global_header_fmts[i], val[i]);
+
+	for (i = CS_HEADER_VERSION_MAX; cpu < num; cpu++) {
+		if (version == 0)
+			err = cs_etm__print_cpu_metadata_v0(val, &i);
+		else if (version == 1)
+			err = cs_etm__print_cpu_metadata_v1(val, &i);
+		if (err)
 			return;
 	}
 }
 
+/*
+ * Read a single cpu parameter block from the auxtrace_info priv block.
+ *
+ * For version 1 there is a per cpu nr_params entry. If we are handling
+ * version 1 file, then there may be less, the same, or more params
+ * indicated by this value than the compile time number we understand.
+ *
+ * For a version 0 info block, there are a fixed number, and we need to
+ * fill out the nr_param value in the metadata we create.
+ */
+static u64 *cs_etm__create_meta_blk(u64 *buff_in, int *buff_in_offset,
+				    int out_blk_size, int nr_params_v0)
+{
+	u64 *metadata = NULL;
+	int hdr_version;
+	int nr_in_params, nr_out_params, nr_cmn_params;
+	int i, k;
+
+	metadata = zalloc(sizeof(*metadata) * out_blk_size);
+	if (!metadata)
+		return NULL;
+
+	/* read block current index & version */
+	i = *buff_in_offset;
+	hdr_version = buff_in[CS_HEADER_VERSION];
+
+	if (!hdr_version) {
+	/* read version 0 info block into a version 1 metadata block  */
+		nr_in_params = nr_params_v0;
+		metadata[CS_ETM_MAGIC] = buff_in[i + CS_ETM_MAGIC];
+		metadata[CS_ETM_CPU] = buff_in[i + CS_ETM_CPU];
+		metadata[CS_ETM_NR_TRC_PARAMS] = nr_in_params;
+		/* remaining block params at offset +1 from source */
+		for (k = CS_ETM_COMMON_BLK_MAX_V1 - 1; k < nr_in_params; k++)
+			metadata[k + 1] = buff_in[i + k];
+		/* version 0 has 2 common params */
+		nr_cmn_params = 2;
+	} else {
+	/* read version 1 info block - input and output nr_params may differ */
+		/* version 1 has 3 common params */
+		nr_cmn_params = 3;
+		nr_in_params = buff_in[i + CS_ETM_NR_TRC_PARAMS];
+
+		/* if input has more params than output - skip excess */
+		nr_out_params = nr_in_params + nr_cmn_params;
+		if (nr_out_params > out_blk_size)
+			nr_out_params = out_blk_size;
+
+		for (k = CS_ETM_MAGIC; k < nr_out_params; k++)
+			metadata[k] = buff_in[i + k];
+
+		/* record the actual nr params we copied */
+		metadata[CS_ETM_NR_TRC_PARAMS] = nr_out_params - nr_cmn_params;
+	}
+
+	/* adjust in offset by number of in params used */
+	i += nr_in_params + nr_cmn_params;
+	*buff_in_offset = i;
+	return metadata;
+}
+
 int cs_etm__process_auxtrace_info(union perf_event *event,
 				  struct perf_session *session)
 {
@@ -2492,11 +2635,12 @@ int cs_etm__process_auxtrace_info(union perf_event *event,
 	int info_header_size;
 	int total_size = auxtrace_info->header.size;
 	int priv_size = 0;
-	int num_cpu;
-	int err = 0, idx = -1;
-	int i, j, k;
+	int num_cpu, trcidr_idx;
+	int err = 0;
+	int i, j;
 	u64 *ptr, *hdr = NULL;
 	u64 **metadata = NULL;
+	u64 hdr_version;
 
 	/*
 	 * sizeof(auxtrace_info_event::type) +
@@ -2512,16 +2656,21 @@ int cs_etm__process_auxtrace_info(union perf_event *event,
 	/* First the global part */
 	ptr = (u64 *) auxtrace_info->priv;
 
-	/* Look for version '0' of the header */
-	if (ptr[0] != 0)
+	/* Look for version of the header */
+	hdr_version = ptr[0];
+	if (hdr_version > CS_HEADER_CURRENT_VERSION) {
+		/* print routine will print an error on bad version */
+		if (dump_trace)
+			cs_etm__print_auxtrace_info(auxtrace_info->priv, 0);
 		return -EINVAL;
+	}
 
-	hdr = zalloc(sizeof(*hdr) * CS_HEADER_VERSION_0_MAX);
+	hdr = zalloc(sizeof(*hdr) * CS_HEADER_VERSION_MAX);
 	if (!hdr)
 		return -ENOMEM;
 
 	/* Extract header information - see cs-etm.h for format */
-	for (i = 0; i < CS_HEADER_VERSION_0_MAX; i++)
+	for (i = 0; i < CS_HEADER_VERSION_MAX; i++)
 		hdr[i] = ptr[i];
 	num_cpu = hdr[CS_PMU_TYPE_CPUS] & 0xffffffff;
 	pmu_type = (unsigned int) ((hdr[CS_PMU_TYPE_CPUS] >> 32) &
@@ -2552,35 +2701,31 @@ int cs_etm__process_auxtrace_info(union perf_event *event,
 	 */
 	for (j = 0; j < num_cpu; j++) {
 		if (ptr[i] == __perf_cs_etmv3_magic) {
-			metadata[j] = zalloc(sizeof(*metadata[j]) *
-					     CS_ETM_PRIV_MAX);
-			if (!metadata[j]) {
-				err = -ENOMEM;
-				goto err_free_metadata;
-			}
-			for (k = 0; k < CS_ETM_PRIV_MAX; k++)
-				metadata[j][k] = ptr[i + k];
+			metadata[j] =
+				cs_etm__create_meta_blk(ptr, &i,
+							CS_ETM_PRIV_MAX,
+							CS_ETM_NR_TRC_PARAMS_V0);
 
 			/* The traceID is our handle */
-			idx = metadata[j][CS_ETM_ETMTRACEIDR];
-			i += CS_ETM_PRIV_MAX;
+			trcidr_idx = CS_ETM_ETMTRACEIDR;
+
 		} else if (ptr[i] == __perf_cs_etmv4_magic) {
-			metadata[j] = zalloc(sizeof(*metadata[j]) *
-					     CS_ETMV4_PRIV_MAX);
-			if (!metadata[j]) {
-				err = -ENOMEM;
-				goto err_free_metadata;
-			}
-			for (k = 0; k < CS_ETMV4_PRIV_MAX; k++)
-				metadata[j][k] = ptr[i + k];
+			metadata[j] =
+				cs_etm__create_meta_blk(ptr, &i,
+							CS_ETMV4_PRIV_MAX,
+							CS_ETMV4_NR_TRC_PARAMS_V0);
 
 			/* The traceID is our handle */
-			idx = metadata[j][CS_ETMV4_TRCTRACEIDR];
-			i += CS_ETMV4_PRIV_MAX;
+			trcidr_idx = CS_ETMV4_TRCTRACEIDR;
+		}
+
+		if (!metadata[j]) {
+			err = -ENOMEM;
+			goto err_free_metadata;
 		}
 
 		/* Get an RB node for this CPU */
-		inode = intlist__findnew(traceid_list, idx);
+		inode = intlist__findnew(traceid_list, metadata[j][trcidr_idx]);
 
 		/* Something went wrong, no need to continue */
 		if (!inode) {
@@ -2601,7 +2746,7 @@ int cs_etm__process_auxtrace_info(union perf_event *event,
 	}
 
 	/*
-	 * Each of CS_HEADER_VERSION_0_MAX, CS_ETM_PRIV_MAX and
+	 * Each of CS_HEADER_VERSION_MAX, CS_ETM_PRIV_MAX and
 	 * CS_ETMV4_PRIV_MAX mark how many double words are in the
 	 * global metadata, and each cpu's metadata respectively.
 	 * The following tests if the correct number of double words was
@@ -2703,6 +2848,12 @@ int cs_etm__process_auxtrace_info(union perf_event *event,
 	intlist__delete(traceid_list);
 err_free_hdr:
 	zfree(&hdr);
-
+	/*
+	 * At this point, as a minimum we have valid header. Dump the rest of
+	 * the info section - the print routines will error out on structural
+	 * issues.
+	 */
+	if (dump_trace)
+		cs_etm__print_auxtrace_info(auxtrace_info->priv, num_cpu);
 	return err;
 }
diff --git a/tools/perf/util/cs-etm.h b/tools/perf/util/cs-etm.h
index 4ad925d6d799..e153d02df0de 100644
--- a/tools/perf/util/cs-etm.h
+++ b/tools/perf/util/cs-etm.h
@@ -17,23 +17,37 @@ struct perf_session;
  */
 enum {
 	/* Starting with 0x0 */
-	CS_HEADER_VERSION_0,
+	CS_HEADER_VERSION,
 	/* PMU->type (32 bit), total # of CPUs (32 bit) */
 	CS_PMU_TYPE_CPUS,
 	CS_ETM_SNAPSHOT,
-	CS_HEADER_VERSION_0_MAX,
+	CS_HEADER_VERSION_MAX,
 };
 
+/*
+ * Update the version for new format.
+ *
+ * New version 1 format adds a param count to the per cpu metadata.
+ * This allows easy adding of new metadata parameters.
+ * Requires that new params always added after current ones.
+ * Also allows client reader to handle file versions that are different by
+ * checking the number of params in the file vs the number expected.
+ */
+#define CS_HEADER_CURRENT_VERSION 1
+
 /* Beginning of header common to both ETMv3 and V4 */
 enum {
 	CS_ETM_MAGIC,
 	CS_ETM_CPU,
+	/* Number of trace config params in following ETM specific block */
+	CS_ETM_NR_TRC_PARAMS,
+	CS_ETM_COMMON_BLK_MAX_V1,
 };
 
 /* ETMv3/PTM metadata */
 enum {
 	/* Dynamic, configurable parameters */
-	CS_ETM_ETMCR = CS_ETM_CPU + 1,
+	CS_ETM_ETMCR = CS_ETM_COMMON_BLK_MAX_V1,
 	CS_ETM_ETMTRACEIDR,
 	/* RO, taken from sysFS */
 	CS_ETM_ETMCCER,
@@ -41,10 +55,13 @@ enum {
 	CS_ETM_PRIV_MAX,
 };
 
+/* define fixed version 0 length - allow new format reader to read old files. */
+#define CS_ETM_NR_TRC_PARAMS_V0 (CS_ETM_ETMIDR - CS_ETM_ETMCR + 1)
+
 /* ETMv4 metadata */
 enum {
 	/* Dynamic, configurable parameters */
-	CS_ETMV4_TRCCONFIGR = CS_ETM_CPU + 1,
+	CS_ETMV4_TRCCONFIGR = CS_ETM_COMMON_BLK_MAX_V1,
 	CS_ETMV4_TRCTRACEIDR,
 	/* RO, taken from sysFS */
 	CS_ETMV4_TRCIDR0,
@@ -55,6 +72,9 @@ enum {
 	CS_ETMV4_PRIV_MAX,
 };
 
+/* define fixed version 0 length - allow new format reader to read old files. */
+#define CS_ETMV4_NR_TRC_PARAMS_V0 (CS_ETMV4_TRCAUTHSTATUS - CS_ETMV4_TRCCONFIGR + 1)
+
 /*
  * ETMv3 exception encoding number:
  * See Embedded Trace Macrocell spcification (ARM IHI 0014Q)
@@ -162,7 +182,7 @@ struct cs_etm_packet_queue {
 
 #define BMVAL(val, lsb, msb)	((val & GENMASK(msb, lsb)) >> lsb)
 
-#define CS_ETM_HEADER_SIZE (CS_HEADER_VERSION_0_MAX * sizeof(u64))
+#define CS_ETM_HEADER_SIZE (CS_HEADER_VERSION_MAX * sizeof(u64))
 
 #define __perf_cs_etmv3_magic 0x3030303030303030ULL
 #define __perf_cs_etmv4_magic 0x4040404040404040ULL
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/6] tools headers UAPI: Update tools' copy of linux/coresight-pmu.h
  2021-02-24 16:48 [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Mathieu Poirier
  2021-02-24 16:48 ` [PATCH 1/6] perf: cs-etm: update ETM metadata format Mathieu Poirier
@ 2021-02-24 16:48 ` Mathieu Poirier
  2021-02-24 16:48 ` [PATCH 3/6] perf cs-etm: Fix bitmap for option Mathieu Poirier
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Mathieu Poirier @ 2021-02-24 16:48 UTC (permalink / raw)
  To: acme; +Cc: mike.leach, leo.yan, linux-kernel

From: Leo Yan <leo.yan@linaro.org>

To get the changes in the commit:

  "coresight: etm-perf: Clarify comment on perf options".

Signed-off-by: Leo Yan <leo.yan@linaro.org>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20210213113220.292229-2-leo.yan@linaro.org
---
 tools/include/linux/coresight-pmu.h | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/tools/include/linux/coresight-pmu.h b/tools/include/linux/coresight-pmu.h
index b0e35eec6499..5dc47cfdcf07 100644
--- a/tools/include/linux/coresight-pmu.h
+++ b/tools/include/linux/coresight-pmu.h
@@ -10,11 +10,18 @@
 #define CORESIGHT_ETM_PMU_NAME "cs_etm"
 #define CORESIGHT_ETM_PMU_SEED  0x10
 
-/* ETMv3.5/PTM's ETMCR config bit */
-#define ETM_OPT_CYCACC  12
-#define ETM_OPT_CTXTID	14
-#define ETM_OPT_TS      28
-#define ETM_OPT_RETSTK	29
+/*
+ * Below are the definition of bit offsets for perf option, and works as
+ * arbitrary values for all ETM versions.
+ *
+ * Most of them are orignally from ETMv3.5/PTM's ETMCR config, therefore,
+ * ETMv3.5/PTM doesn't define ETMCR config bits with prefix "ETM3_" and
+ * directly use below macros as config bits.
+ */
+#define ETM_OPT_CYCACC		12
+#define ETM_OPT_CTXTID		14
+#define ETM_OPT_TS		28
+#define ETM_OPT_RETSTK		29
 
 /* ETMv4 CONFIGR programming bits for the ETM OPTs */
 #define ETM4_CFG_BIT_CYCACC	4
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/6] perf cs-etm: Fix bitmap for option
  2021-02-24 16:48 [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Mathieu Poirier
  2021-02-24 16:48 ` [PATCH 1/6] perf: cs-etm: update ETM metadata format Mathieu Poirier
  2021-02-24 16:48 ` [PATCH 2/6] tools headers UAPI: Update tools' copy of linux/coresight-pmu.h Mathieu Poirier
@ 2021-02-24 16:48 ` Mathieu Poirier
  2021-02-24 16:48 ` [PATCH 4/6] perf cs-etm: Support PID tracing in config Mathieu Poirier
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Mathieu Poirier @ 2021-02-24 16:48 UTC (permalink / raw)
  To: acme; +Cc: mike.leach, leo.yan, linux-kernel

From: Suzuki K Poulose <suzuki.poulose@arm.com>

When set option with macros ETM_OPT_CTXTID and ETM_OPT_TS, it wrongly
takes these two values (14 and 28 prespectively) as bit masks, but
actually both are the offset for bits.  But this doesn't lead to
further failure due to the AND logic operation will be always true for
ETM_OPT_CTXTID / ETM_OPT_TS.

This patch uses the BIT() macro for option bits, thus it can request the
correct bitmaps for "contextid" and "timestamp" when calling
cs_etm_set_option().

Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
[Extract the change as a separate patch for easier review]
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20210213113220.292229-3-leo.yan@linaro.org
---
 tools/perf/arch/arm/util/cs-etm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/tools/perf/arch/arm/util/cs-etm.c b/tools/perf/arch/arm/util/cs-etm.c
index b0470f2a955a..5b2bb7fc5ee1 100644
--- a/tools/perf/arch/arm/util/cs-etm.c
+++ b/tools/perf/arch/arm/util/cs-etm.c
@@ -169,17 +169,17 @@ static int cs_etm_set_option(struct auxtrace_record *itr,
 		    !cpu_map__has(online_cpus, i))
 			continue;
 
-		if (option & ETM_OPT_CTXTID) {
+		if (option & BIT(ETM_OPT_CTXTID)) {
 			err = cs_etm_set_context_id(itr, evsel, i);
 			if (err)
 				goto out;
 		}
-		if (option & ETM_OPT_TS) {
+		if (option & BIT(ETM_OPT_TS)) {
 			err = cs_etm_set_timestamp(itr, evsel, i);
 			if (err)
 				goto out;
 		}
-		if (option & ~(ETM_OPT_CTXTID | ETM_OPT_TS))
+		if (option & ~(BIT(ETM_OPT_CTXTID) | BIT(ETM_OPT_TS)))
 			/* Nothing else is currently supported */
 			goto out;
 	}
@@ -406,7 +406,7 @@ static int cs_etm_recording_options(struct auxtrace_record *itr,
 		evsel__set_sample_bit(cs_etm_evsel, CPU);
 
 		err = cs_etm_set_option(itr, cs_etm_evsel,
-					ETM_OPT_CTXTID | ETM_OPT_TS);
+					BIT(ETM_OPT_CTXTID) | BIT(ETM_OPT_TS));
 		if (err)
 			goto out;
 	}
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 4/6] perf cs-etm: Support PID tracing in config
  2021-02-24 16:48 [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Mathieu Poirier
                   ` (2 preceding siblings ...)
  2021-02-24 16:48 ` [PATCH 3/6] perf cs-etm: Fix bitmap for option Mathieu Poirier
@ 2021-02-24 16:48 ` Mathieu Poirier
  2021-02-24 16:48 ` [PATCH 5/6] perf cs-etm: Add helper cs_etm__get_pid_fmt() Mathieu Poirier
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Mathieu Poirier @ 2021-02-24 16:48 UTC (permalink / raw)
  To: acme; +Cc: mike.leach, leo.yan, linux-kernel

From: Suzuki K Poulose <suzuki.poulose@arm.com>

If the kernel is running at EL2, the pid of a task is exposed via VMID
instead of the CONTEXTID.  Add support for this in the perf tool.

This patch respects user setting if user has specified any configs
from "contextid", "contextid1" or "contextid2"; otherwise, it
dynamically sets config based on PMU format "contextid".

Cc: Mike Leach <mike.leach@linaro.org>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Al Grant <al.grant@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Co-developed-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Reviewed-by: Mike Leach <mike.leach@linaro.org>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20210213113220.292229-4-leo.yan@linaro.org
---
 tools/include/linux/coresight-pmu.h |  3 ++
 tools/perf/arch/arm/util/cs-etm.c   | 61 +++++++++++++++++++++++------
 2 files changed, 52 insertions(+), 12 deletions(-)

diff --git a/tools/include/linux/coresight-pmu.h b/tools/include/linux/coresight-pmu.h
index 5dc47cfdcf07..4ac5c081af93 100644
--- a/tools/include/linux/coresight-pmu.h
+++ b/tools/include/linux/coresight-pmu.h
@@ -20,14 +20,17 @@
  */
 #define ETM_OPT_CYCACC		12
 #define ETM_OPT_CTXTID		14
+#define ETM_OPT_CTXTID2		15
 #define ETM_OPT_TS		28
 #define ETM_OPT_RETSTK		29
 
 /* ETMv4 CONFIGR programming bits for the ETM OPTs */
 #define ETM4_CFG_BIT_CYCACC	4
 #define ETM4_CFG_BIT_CTXTID	6
+#define ETM4_CFG_BIT_VMID	7
 #define ETM4_CFG_BIT_TS		11
 #define ETM4_CFG_BIT_RETSTK	12
+#define ETM4_CFG_BIT_VMID_OPT	15
 
 static inline int coresight_get_trace_id(int cpu)
 {
diff --git a/tools/perf/arch/arm/util/cs-etm.c b/tools/perf/arch/arm/util/cs-etm.c
index 5b2bb7fc5ee1..911c7f2b3581 100644
--- a/tools/perf/arch/arm/util/cs-etm.c
+++ b/tools/perf/arch/arm/util/cs-etm.c
@@ -67,6 +67,7 @@ static int cs_etm_set_context_id(struct auxtrace_record *itr,
 	char path[PATH_MAX];
 	int err = -EINVAL;
 	u32 val;
+	u64 contextid;
 
 	ptr = container_of(itr, struct cs_etm_recording, itr);
 	cs_etm_pmu = ptr->cs_etm_pmu;
@@ -86,25 +87,59 @@ static int cs_etm_set_context_id(struct auxtrace_record *itr,
 		goto out;
 	}
 
+	/* User has configured for PID tracing, respects it. */
+	contextid = evsel->core.attr.config &
+			(BIT(ETM_OPT_CTXTID) | BIT(ETM_OPT_CTXTID2));
+
 	/*
-	 * TRCIDR2.CIDSIZE, bit [9-5], indicates whether contextID tracing
-	 * is supported:
-	 *  0b00000 Context ID tracing is not supported.
-	 *  0b00100 Maximum of 32-bit Context ID size.
-	 *  All other values are reserved.
+	 * If user doesn't configure the contextid format, parse PMU format and
+	 * enable PID tracing according to the "contextid" format bits:
+	 *
+	 *   If bit ETM_OPT_CTXTID is set, trace CONTEXTIDR_EL1;
+	 *   If bit ETM_OPT_CTXTID2 is set, trace CONTEXTIDR_EL2.
 	 */
-	val = BMVAL(val, 5, 9);
-	if (!val || val != 0x4) {
-		err = -EINVAL;
-		goto out;
+	if (!contextid)
+		contextid = perf_pmu__format_bits(&cs_etm_pmu->format,
+						  "contextid");
+
+	if (contextid & BIT(ETM_OPT_CTXTID)) {
+		/*
+		 * TRCIDR2.CIDSIZE, bit [9-5], indicates whether contextID
+		 * tracing is supported:
+		 *  0b00000 Context ID tracing is not supported.
+		 *  0b00100 Maximum of 32-bit Context ID size.
+		 *  All other values are reserved.
+		 */
+		val = BMVAL(val, 5, 9);
+		if (!val || val != 0x4) {
+			pr_err("%s: CONTEXTIDR_EL1 isn't supported\n",
+			       CORESIGHT_ETM_PMU_NAME);
+			err = -EINVAL;
+			goto out;
+		}
+	}
+
+	if (contextid & BIT(ETM_OPT_CTXTID2)) {
+		/*
+		 * TRCIDR2.VMIDOPT[30:29] != 0 and
+		 * TRCIDR2.VMIDSIZE[14:10] == 0b00100 (32bit virtual contextid)
+		 * We can't support CONTEXTIDR in VMID if the size of the
+		 * virtual context id is < 32bit.
+		 * Any value of VMIDSIZE >= 4 (i.e, > 32bit) is fine for us.
+		 */
+		if (!BMVAL(val, 29, 30) || BMVAL(val, 10, 14) < 4) {
+			pr_err("%s: CONTEXTIDR_EL2 isn't supported\n",
+			       CORESIGHT_ETM_PMU_NAME);
+			err = -EINVAL;
+			goto out;
+		}
 	}
 
 	/* All good, let the kernel know */
-	evsel->core.attr.config |= (1 << ETM_OPT_CTXTID);
+	evsel->core.attr.config |= contextid;
 	err = 0;
 
 out:
-
 	return err;
 }
 
@@ -485,7 +520,9 @@ static u64 cs_etmv4_get_config(struct auxtrace_record *itr)
 		config |= BIT(ETM4_CFG_BIT_TS);
 	if (config_opts & BIT(ETM_OPT_RETSTK))
 		config |= BIT(ETM4_CFG_BIT_RETSTK);
-
+	if (config_opts & BIT(ETM_OPT_CTXTID2))
+		config |= BIT(ETM4_CFG_BIT_VMID) |
+			  BIT(ETM4_CFG_BIT_VMID_OPT);
 	return config;
 }
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 5/6] perf cs-etm: Add helper cs_etm__get_pid_fmt()
  2021-02-24 16:48 [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Mathieu Poirier
                   ` (3 preceding siblings ...)
  2021-02-24 16:48 ` [PATCH 4/6] perf cs-etm: Support PID tracing in config Mathieu Poirier
@ 2021-02-24 16:48 ` Mathieu Poirier
  2021-02-24 16:48 ` [PATCH 6/6] perf cs-etm: Detect pid in VMID for kernel running at EL2 Mathieu Poirier
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Mathieu Poirier @ 2021-02-24 16:48 UTC (permalink / raw)
  To: acme; +Cc: mike.leach, leo.yan, linux-kernel

From: Leo Yan <leo.yan@linaro.org>

This patch adds helper function cs_etm__get_pid_fmt(), by passing
parameter "traceID", it returns the PID format.

Signed-off-by: Leo Yan <leo.yan@linaro.org>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20210213113220.292229-5-leo.yan@linaro.org
---
 tools/perf/util/cs-etm.c | 42 ++++++++++++++++++++++++++++++++++++++++
 tools/perf/util/cs-etm.h |  1 +
 2 files changed, 43 insertions(+)

diff --git a/tools/perf/util/cs-etm.c b/tools/perf/util/cs-etm.c
index ee32d023e9bd..9ac80fc23c58 100644
--- a/tools/perf/util/cs-etm.c
+++ b/tools/perf/util/cs-etm.c
@@ -7,6 +7,7 @@
  */
 
 #include <linux/bitops.h>
+#include <linux/coresight-pmu.h>
 #include <linux/err.h>
 #include <linux/kernel.h>
 #include <linux/log2.h>
@@ -156,6 +157,47 @@ int cs_etm__get_cpu(u8 trace_chan_id, int *cpu)
 	return 0;
 }
 
+/*
+ * The returned PID format is presented by two bits:
+ *
+ *   Bit ETM_OPT_CTXTID: CONTEXTIDR or CONTEXTIDR_EL1 is traced;
+ *   Bit ETM_OPT_CTXTID2: CONTEXTIDR_EL2 is traced.
+ *
+ * It's possible that the two bits ETM_OPT_CTXTID and ETM_OPT_CTXTID2
+ * are enabled at the same time when the session runs on an EL2 kernel.
+ * This means the CONTEXTIDR_EL1 and CONTEXTIDR_EL2 both will be
+ * recorded in the trace data, the tool will selectively use
+ * CONTEXTIDR_EL2 as PID.
+ */
+int cs_etm__get_pid_fmt(u8 trace_chan_id, u64 *pid_fmt)
+{
+	struct int_node *inode;
+	u64 *metadata, val;
+
+	inode = intlist__find(traceid_list, trace_chan_id);
+	if (!inode)
+		return -EINVAL;
+
+	metadata = inode->priv;
+
+	if (metadata[CS_ETM_MAGIC] == __perf_cs_etmv3_magic) {
+		val = metadata[CS_ETM_ETMCR];
+		/* CONTEXTIDR is traced */
+		if (val & BIT(ETM_OPT_CTXTID))
+			*pid_fmt = BIT(ETM_OPT_CTXTID);
+	} else {
+		val = metadata[CS_ETMV4_TRCCONFIGR];
+		/* CONTEXTIDR_EL2 is traced */
+		if (val & (BIT(ETM4_CFG_BIT_VMID) | BIT(ETM4_CFG_BIT_VMID_OPT)))
+			*pid_fmt = BIT(ETM_OPT_CTXTID2);
+		/* CONTEXTIDR_EL1 is traced */
+		else if (val & BIT(ETM4_CFG_BIT_CTXTID))
+			*pid_fmt = BIT(ETM_OPT_CTXTID);
+	}
+
+	return 0;
+}
+
 void cs_etm__etmq_set_traceid_queue_timestamp(struct cs_etm_queue *etmq,
 					      u8 trace_chan_id)
 {
diff --git a/tools/perf/util/cs-etm.h b/tools/perf/util/cs-etm.h
index e153d02df0de..85ed11e9d2a7 100644
--- a/tools/perf/util/cs-etm.h
+++ b/tools/perf/util/cs-etm.h
@@ -193,6 +193,7 @@ struct cs_etm_packet_queue {
 int cs_etm__process_auxtrace_info(union perf_event *event,
 				  struct perf_session *session);
 int cs_etm__get_cpu(u8 trace_chan_id, int *cpu);
+int cs_etm__get_pid_fmt(u8 trace_chan_id, u64 *pid_fmt);
 int cs_etm__etmq_set_tid(struct cs_etm_queue *etmq,
 			 pid_t tid, u8 trace_chan_id);
 bool cs_etm__etmq_is_timeless(struct cs_etm_queue *etmq);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 6/6] perf cs-etm: Detect pid in VMID for kernel running at EL2
  2021-02-24 16:48 [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Mathieu Poirier
                   ` (4 preceding siblings ...)
  2021-02-24 16:48 ` [PATCH 5/6] perf cs-etm: Add helper cs_etm__get_pid_fmt() Mathieu Poirier
@ 2021-02-24 16:48 ` Mathieu Poirier
  2021-02-24 22:20 ` [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Arnaldo Carvalho de Melo
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 16+ messages in thread
From: Mathieu Poirier @ 2021-02-24 16:48 UTC (permalink / raw)
  To: acme; +Cc: mike.leach, leo.yan, linux-kernel

From: Suzuki K Poulose <suzuki.poulose@arm.com>

The PID of the task could be traced as VMID when the kernel is running
at EL2.  Teach the decoder to look for VMID when the CONTEXTIDR (Arm32)
or CONTEXTIDR_EL1 (Arm64) is invalid but we have a valid VMID.

Cc: Mike Leach <mike.leach@linaro.org>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Al Grant <al.grant@arm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Co-developed-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Reviewed-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Link: https://lore.kernel.org/r/20210213113220.292229-6-leo.yan@linaro.org
---
 .../perf/util/cs-etm-decoder/cs-etm-decoder.c | 38 +++++++++++++++++--
 1 file changed, 34 insertions(+), 4 deletions(-)

diff --git a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
index 3f4bc4050477..4052c9ce6e2f 100644
--- a/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
+++ b/tools/perf/util/cs-etm-decoder/cs-etm-decoder.c
@@ -6,6 +6,7 @@
  * Author: Mathieu Poirier <mathieu.poirier@linaro.org>
  */
 
+#include <linux/coresight-pmu.h>
 #include <linux/err.h>
 #include <linux/list.h>
 #include <linux/zalloc.h>
@@ -491,13 +492,42 @@ cs_etm_decoder__set_tid(struct cs_etm_queue *etmq,
 			const ocsd_generic_trace_elem *elem,
 			const uint8_t trace_chan_id)
 {
-	pid_t tid;
+	pid_t tid = -1;
+	static u64 pid_fmt;
+	int ret;
 
-	/* Ignore PE_CONTEXT packets that don't have a valid contextID */
-	if (!elem->context.ctxt_id_valid)
+	/*
+	 * As all the ETMs run at the same exception level, the system should
+	 * have the same PID format crossing CPUs.  So cache the PID format
+	 * and reuse it for sequential decoding.
+	 */
+	if (!pid_fmt) {
+		ret = cs_etm__get_pid_fmt(trace_chan_id, &pid_fmt);
+		if (ret)
+			return OCSD_RESP_FATAL_SYS_ERR;
+	}
+
+	/*
+	 * Process the PE_CONTEXT packets if we have a valid contextID or VMID.
+	 * If the kernel is running at EL2, the PID is traced in CONTEXTIDR_EL2
+	 * as VMID, Bit ETM_OPT_CTXTID2 is set in this case.
+	 */
+	switch (pid_fmt) {
+	case BIT(ETM_OPT_CTXTID):
+		if (elem->context.ctxt_id_valid)
+			tid = elem->context.context_id;
+		break;
+	case BIT(ETM_OPT_CTXTID2):
+		if (elem->context.vmid_valid)
+			tid = elem->context.vmid;
+		break;
+	default:
+		break;
+	}
+
+	if (tid == -1)
 		return OCSD_RESP_CONT;
 
-	tid =  elem->context.context_id;
 	if (cs_etm__etmq_set_tid(etmq, tid, trace_chan_id))
 		return OCSD_RESP_FATAL_SYS_ERR;
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/6] coresight: Patches for v5.12 (perf tools)
  2021-02-24 16:48 [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Mathieu Poirier
                   ` (5 preceding siblings ...)
  2021-02-24 16:48 ` [PATCH 6/6] perf cs-etm: Detect pid in VMID for kernel running at EL2 Mathieu Poirier
@ 2021-02-24 22:20 ` Arnaldo Carvalho de Melo
  2021-03-02 12:51 ` Arnaldo Carvalho de Melo
  2021-03-02 12:52 ` Arnaldo Carvalho de Melo
  8 siblings, 0 replies; 16+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-02-24 22:20 UTC (permalink / raw)
  To: Mathieu Poirier; +Cc: mike.leach, leo.yan, linux-kernel

Em Wed, Feb 24, 2021 at 09:48:29AM -0700, Mathieu Poirier escreveu:
> Good day Arnaldo,
> 
> I noticed there is a couple of patchsets [1][2] that haven't made it
> to your tree for the coming v5.12 cycle.  Do you think that can still
> be done? 

Sure, I'll go thru them, hopefully we'll get it in v5.12-rc1.

Thanks,

- Arnaldo
 
> I tallied the patches here to make it easier for you to pick up.
> 
> Applies cleanly on perf/core (84b7725536d8)
> 
> Thanks,
> Mathieu
> 
> [1]. https://lore.kernel.org/lkml/20210202214040.32349-1-mike.leach@linaro.org/
> [2]. https://lore.kernel.org/lkml/20210213113220.292229-1-leo.yan@linaro.org/
> 
> Leo Yan (2):
>   tools headers UAPI: Update tools' copy of linux/coresight-pmu.h
>   perf cs-etm: Add helper cs_etm__get_pid_fmt()
> 
> Mike Leach (1):
>   perf: cs-etm: update ETM metadata format
> 
> Suzuki K Poulose (3):
>   perf cs-etm: Fix bitmap for option
>   perf cs-etm: Support PID tracing in config
>   perf cs-etm: Detect pid in VMID for kernel running at EL2
> 
>  tools/include/linux/coresight-pmu.h           |  20 +-
>  tools/perf/arch/arm/util/cs-etm.c             |  76 +++--
>  .../perf/util/cs-etm-decoder/cs-etm-decoder.c |  38 ++-
>  tools/perf/util/cs-etm.c                      | 277 +++++++++++++++---
>  tools/perf/util/cs-etm.h                      |  31 +-
>  5 files changed, 368 insertions(+), 74 deletions(-)
> 
> -- 
> 2.25.1
> 

-- 

- Arnaldo

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/6] coresight: Patches for v5.12 (perf tools)
  2021-02-24 16:48 [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Mathieu Poirier
                   ` (6 preceding siblings ...)
  2021-02-24 22:20 ` [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Arnaldo Carvalho de Melo
@ 2021-03-02 12:51 ` Arnaldo Carvalho de Melo
  2021-03-02 12:52 ` Arnaldo Carvalho de Melo
  8 siblings, 0 replies; 16+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-03-02 12:51 UTC (permalink / raw)
  To: Mathieu Poirier; +Cc: mike.leach, leo.yan, linux-kernel

Em Wed, Feb 24, 2021 at 09:48:29AM -0700, Mathieu Poirier escreveu:
> Good day Arnaldo,
> 
> I noticed there is a couple of patchsets [1][2] that haven't made it
> to your tree for the coming v5.12 cycle.  Do you think that can still
> be done? 

Thanks, applied, unfortunately the window is closed and I missed
processing these in time, so it'll make v5.13, sorry.

- Arnaldo
 
> I tallied the patches here to make it easier for you to pick up.
> 
> Applies cleanly on perf/core (84b7725536d8)
> 
> Thanks,
> Mathieu
> 
> [1]. https://lore.kernel.org/lkml/20210202214040.32349-1-mike.leach@linaro.org/
> [2]. https://lore.kernel.org/lkml/20210213113220.292229-1-leo.yan@linaro.org/
> 
> Leo Yan (2):
>   tools headers UAPI: Update tools' copy of linux/coresight-pmu.h
>   perf cs-etm: Add helper cs_etm__get_pid_fmt()
> 
> Mike Leach (1):
>   perf: cs-etm: update ETM metadata format
> 
> Suzuki K Poulose (3):
>   perf cs-etm: Fix bitmap for option
>   perf cs-etm: Support PID tracing in config
>   perf cs-etm: Detect pid in VMID for kernel running at EL2
> 
>  tools/include/linux/coresight-pmu.h           |  20 +-
>  tools/perf/arch/arm/util/cs-etm.c             |  76 +++--
>  .../perf/util/cs-etm-decoder/cs-etm-decoder.c |  38 ++-
>  tools/perf/util/cs-etm.c                      | 277 +++++++++++++++---
>  tools/perf/util/cs-etm.h                      |  31 +-
>  5 files changed, 368 insertions(+), 74 deletions(-)
> 
> -- 
> 2.25.1
> 

-- 

- Arnaldo

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/6] coresight: Patches for v5.12 (perf tools)
  2021-02-24 16:48 [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Mathieu Poirier
                   ` (7 preceding siblings ...)
  2021-03-02 12:51 ` Arnaldo Carvalho de Melo
@ 2021-03-02 12:52 ` Arnaldo Carvalho de Melo
  2021-03-02 14:23   ` Mike Leach
  8 siblings, 1 reply; 16+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-03-02 12:52 UTC (permalink / raw)
  To: Mathieu Poirier; +Cc: mike.leach, leo.yan, linux-kernel

Em Wed, Feb 24, 2021 at 09:48:29AM -0700, Mathieu Poirier escreveu:
> Good day Arnaldo,
> 
> I noticed there is a couple of patchsets [1][2] that haven't made it
> to your tree for the coming v5.12 cycle.  Do you think that can still
> be done? 
> 
> I tallied the patches here to make it easier for you to pick up.
> 
> Applies cleanly on perf/core (84b7725536d8)
> 
> Thanks,
> Mathieu
> 
> [1]. https://lore.kernel.org/lkml/20210202214040.32349-1-mike.leach@linaro.org/
> [2]. https://lore.kernel.org/lkml/20210213113220.292229-1-leo.yan@linaro.org/

These are not applying right now, I've pushed what I have to
tmp.perf/core, please take a look, I'll get back to this after
processing fixes for v5.12 and what is outstanding for v5.13.

- Arnaldo

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/6] coresight: Patches for v5.12 (perf tools)
  2021-03-02 12:52 ` Arnaldo Carvalho de Melo
@ 2021-03-02 14:23   ` Mike Leach
  2021-03-02 16:24     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 16+ messages in thread
From: Mike Leach @ 2021-03-02 14:23 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Mathieu Poirier, Leo Yan, Linux Kernel Mailing List

Hi Arnaldo,


On Tue, 2 Mar 2021 at 12:52, Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
>
> Em Wed, Feb 24, 2021 at 09:48:29AM -0700, Mathieu Poirier escreveu:
> > Good day Arnaldo,
> >
> > I noticed there is a couple of patchsets [1][2] that haven't made it
> > to your tree for the coming v5.12 cycle.  Do you think that can still
> > be done?
> >
> > I tallied the patches here to make it easier for you to pick up.
> >
> > Applies cleanly on perf/core (84b7725536d8)
> >
> > Thanks,
> > Mathieu
> >
> > [1]. https://lore.kernel.org/lkml/20210202214040.32349-1-mike.leach@linaro.org/
> > [2]. https://lore.kernel.org/lkml/20210213113220.292229-1-leo.yan@linaro.org/
>
> These are not applying right now, I've pushed what I have to
> tmp.perf/core, please take a look, I'll get back to this after
> processing fixes for v5.12 and what is outstanding for v5.13.
>
> - Arnaldo

I've tried [1] on both Linux-5.12-rc1 and your tmp.perf/core and it
applies cleanly on both.

Let me know if there is anything else I can try.

Thanks

Mike



-- 
Mike Leach
Principal Engineer, ARM Ltd.
Manchester Design Centre. UK

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/6] coresight: Patches for v5.12 (perf tools)
  2021-03-02 14:23   ` Mike Leach
@ 2021-03-02 16:24     ` Arnaldo Carvalho de Melo
  2021-03-02 16:42       ` Mathieu Poirier
  0 siblings, 1 reply; 16+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-03-02 16:24 UTC (permalink / raw)
  To: Mike Leach; +Cc: Mathieu Poirier, Leo Yan, Linux Kernel Mailing List

Em Tue, Mar 02, 2021 at 02:23:14PM +0000, Mike Leach escreveu:
> On Tue, 2 Mar 2021 at 12:52, Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > Em Wed, Feb 24, 2021 at 09:48:29AM -0700, Mathieu Poirier escreveu:
> > > I noticed there is a couple of patchsets [1][2] that haven't made it
> > > to your tree for the coming v5.12 cycle.  Do you think that can still
> > > be done?

> > > I tallied the patches here to make it easier for you to pick up.

> > > Applies cleanly on perf/core (84b7725536d8)

> > > [1]. https://lore.kernel.org/lkml/20210202214040.32349-1-mike.leach@linaro.org/
> > > [2]. https://lore.kernel.org/lkml/20210213113220.292229-1-leo.yan@linaro.org/

> > These are not applying right now, I've pushed what I have to
> > tmp.perf/core, please take a look, I'll get back to this after
> > processing fixes for v5.12 and what is outstanding for v5.13.
 
> I've tried [1] on both Linux-5.12-rc1 and your tmp.perf/core and it
> applies cleanly on both.

Can you please try one more time, these are the last csets on this
branch:

  $ git log --oneline acme/tmp.perf/core -10
  8e1488a46dcf73b1 (HEAD -> perf/core, five/perf/core, acme/tmp.perf/core, acme.korg/tmp.perf/core) perf cs-etm: Detect pid in VMID for kernel running at EL2
  47f0d94c203751dd perf cs-etm: Add helper cs_etm__get_pid_fmt()
  30cb76aabfb4deab perf cs-etm: Support PID tracing in config
  8c559e8d68630d64 perf cs-etm: Fix bitmap for option
  2bb4ccbd95d7fbf5 tools headers UAPI: Update tools' copy of linux/coresight-pmu.h
  42b2b570b34afb5f perf cs-etm: Update ETM metadata format
  83bf6fb8b076c72f perf vendor events power9: Remove unsupported metrics
  34968b9327c83589 perf buildid-cache: Add test for PE executable
  9bb8b74bdb186bd3 perf docs: Add man pages to see also
  d9fd5a718977702f perf tools: Generate mips syscalls_n64.c syscall table
  $

I think it doesn't apply because I applied a series from Mathieu
touching files affected by those two patchkits.

- Arnaldo
 
> Let me know if there is anything else I can try.
> 
> Thanks
> 
> Mike
> 
> 
> 
> -- 
> Mike Leach
> Principal Engineer, ARM Ltd.
> Manchester Design Centre. UK

-- 

- Arnaldo

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/6] coresight: Patches for v5.12 (perf tools)
  2021-03-02 16:24     ` Arnaldo Carvalho de Melo
@ 2021-03-02 16:42       ` Mathieu Poirier
  2021-03-02 17:02         ` Mike Leach
  0 siblings, 1 reply; 16+ messages in thread
From: Mathieu Poirier @ 2021-03-02 16:42 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo; +Cc: Mike Leach, Leo Yan, Linux Kernel Mailing List

On Tue, Mar 02, 2021 at 01:24:27PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Tue, Mar 02, 2021 at 02:23:14PM +0000, Mike Leach escreveu:
> > On Tue, 2 Mar 2021 at 12:52, Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > > Em Wed, Feb 24, 2021 at 09:48:29AM -0700, Mathieu Poirier escreveu:
> > > > I noticed there is a couple of patchsets [1][2] that haven't made it
> > > > to your tree for the coming v5.12 cycle.  Do you think that can still
> > > > be done?
> 
> > > > I tallied the patches here to make it easier for you to pick up.
> 
> > > > Applies cleanly on perf/core (84b7725536d8)
> 
> > > > [1]. https://lore.kernel.org/lkml/20210202214040.32349-1-mike.leach@linaro.org/
> > > > [2]. https://lore.kernel.org/lkml/20210213113220.292229-1-leo.yan@linaro.org/
> 
> > > These are not applying right now, I've pushed what I have to
> > > tmp.perf/core, please take a look, I'll get back to this after
> > > processing fixes for v5.12 and what is outstanding for v5.13.
>  
> > I've tried [1] on both Linux-5.12-rc1 and your tmp.perf/core and it
> > applies cleanly on both.
> 
> Can you please try one more time, these are the last csets on this
> branch:
> 
>   $ git log --oneline acme/tmp.perf/core -10
>   8e1488a46dcf73b1 (HEAD -> perf/core, five/perf/core, acme/tmp.perf/core, acme.korg/tmp.perf/core) perf cs-etm: Detect pid in VMID for kernel running at EL2
>   47f0d94c203751dd perf cs-etm: Add helper cs_etm__get_pid_fmt()
>   30cb76aabfb4deab perf cs-etm: Support PID tracing in config
>   8c559e8d68630d64 perf cs-etm: Fix bitmap for option
>   2bb4ccbd95d7fbf5 tools headers UAPI: Update tools' copy of linux/coresight-pmu.h
>   42b2b570b34afb5f perf cs-etm: Update ETM metadata format
>   83bf6fb8b076c72f perf vendor events power9: Remove unsupported metrics
>   34968b9327c83589 perf buildid-cache: Add test for PE executable
>   9bb8b74bdb186bd3 perf docs: Add man pages to see also
>   d9fd5a718977702f perf tools: Generate mips syscalls_n64.c syscall table
>   $

As far as I can tell you have all 6 patches.

> 
> I think it doesn't apply because I applied a series from Mathieu
> touching files affected by those two patchkits.
> 
> - Arnaldo
>  
> > Let me know if there is anything else I can try.
> > 
> > Thanks
> > 
> > Mike
> > 
> > 
> > 
> > -- 
> > Mike Leach
> > Principal Engineer, ARM Ltd.
> > Manchester Design Centre. UK
> 
> -- 
> 
> - Arnaldo

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/6] coresight: Patches for v5.12 (perf tools)
  2021-03-02 16:42       ` Mathieu Poirier
@ 2021-03-02 17:02         ` Mike Leach
  2021-03-02 17:11           ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 16+ messages in thread
From: Mike Leach @ 2021-03-02 17:02 UTC (permalink / raw)
  To: Mathieu Poirier
  Cc: Arnaldo Carvalho de Melo, Leo Yan, Linux Kernel Mailing List

On Tue, 2 Mar 2021 at 16:42, Mathieu Poirier <mathieu.poirier@linaro.org> wrote:
>
> On Tue, Mar 02, 2021 at 01:24:27PM -0300, Arnaldo Carvalho de Melo wrote:
> > Em Tue, Mar 02, 2021 at 02:23:14PM +0000, Mike Leach escreveu:
> > > On Tue, 2 Mar 2021 at 12:52, Arnaldo Carvalho de Melo <acme@kernel.org> wrote:
> > > > Em Wed, Feb 24, 2021 at 09:48:29AM -0700, Mathieu Poirier escreveu:
> > > > > I noticed there is a couple of patchsets [1][2] that haven't made it
> > > > > to your tree for the coming v5.12 cycle.  Do you think that can still
> > > > > be done?
> >
> > > > > I tallied the patches here to make it easier for you to pick up.
> >
> > > > > Applies cleanly on perf/core (84b7725536d8)
> >
> > > > > [1]. https://lore.kernel.org/lkml/20210202214040.32349-1-mike.leach@linaro.org/
> > > > > [2]. https://lore.kernel.org/lkml/20210213113220.292229-1-leo.yan@linaro.org/
> >
> > > > These are not applying right now, I've pushed what I have to
> > > > tmp.perf/core, please take a look, I'll get back to this after
> > > > processing fixes for v5.12 and what is outstanding for v5.13.
> >
> > > I've tried [1] on both Linux-5.12-rc1 and your tmp.perf/core and it
> > > applies cleanly on both.
> >
> > Can you please try one more time, these are the last csets on this
> > branch:
> >
> >   $ git log --oneline acme/tmp.perf/core -10
> >   8e1488a46dcf73b1 (HEAD -> perf/core, five/perf/core, acme/tmp.perf/core, acme.korg/tmp.perf/core) perf cs-etm: Detect pid in VMID for kernel running at EL2
> >   47f0d94c203751dd perf cs-etm: Add helper cs_etm__get_pid_fmt()
> >   30cb76aabfb4deab perf cs-etm: Support PID tracing in config
> >   8c559e8d68630d64 perf cs-etm: Fix bitmap for option
> >   2bb4ccbd95d7fbf5 tools headers UAPI: Update tools' copy of linux/coresight-pmu.h
> >   42b2b570b34afb5f perf cs-etm: Update ETM metadata format
> >   83bf6fb8b076c72f perf vendor events power9: Remove unsupported metrics
> >   34968b9327c83589 perf buildid-cache: Add test for PE executable
> >   9bb8b74bdb186bd3 perf docs: Add man pages to see also
> >   d9fd5a718977702f perf tools: Generate mips syscalls_n64.c syscall table
> >   $
>
> As far as I can tell you have all 6 patches.
>

Agreed - [1] I was trying is in fact:
42b2b570b34afb5f perf cs-etm: Update ETM metadata format
in the above list.

Mike

> >
> > I think it doesn't apply because I applied a series from Mathieu
> > touching files affected by those two patchkits.
> >
> > - Arnaldo
> >
> > > Let me know if there is anything else I can try.
> > >
> > > Thanks
> > >
> > > Mike
> > >
> > >
> > >
> > > --
> > > Mike Leach
> > > Principal Engineer, ARM Ltd.
> > > Manchester Design Centre. UK
> >
> > --
> >
> > - Arnaldo



-- 
Mike Leach
Principal Engineer, ARM Ltd.
Manchester Design Centre. UK

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/6] coresight: Patches for v5.12 (perf tools)
  2021-03-02 17:02         ` Mike Leach
@ 2021-03-02 17:11           ` Arnaldo Carvalho de Melo
  2021-03-03  7:50             ` Leo Yan
  0 siblings, 1 reply; 16+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-03-02 17:11 UTC (permalink / raw)
  To: Mike Leach, Mathieu Poirier
  Cc: Arnaldo Carvalho de Melo, Leo Yan, Linux Kernel Mailing List



On March 2, 2021 2:02:17 PM GMT-03:00, Mike Leach <mike.leach@linaro.org> wrote:
>On Tue, 2 Mar 2021 at 16:42, Mathieu Poirier
><mathieu.poirier@linaro.org> wrote:
>>
>> On Tue, Mar 02, 2021 at 01:24:27PM -0300, Arnaldo Carvalho de Melo
>wrote:


>> > Can you please try one more time, these are the last csets on this
>> > branch:
>> >
>> >   $ git log --oneline acme/tmp.perf/core -10
>> >   8e1488a46dcf73b1 (HEAD -> perf/core, five/perf/core,
>acme/tmp.perf/core, acme.korg/tmp.perf/core) perf cs-etm: Detect pid in
>VMID for kernel running at EL2
>> >   47f0d94c203751dd perf cs-etm: Add helper cs_etm__get_pid_fmt()
>> >   30cb76aabfb4deab perf cs-etm: Support PID tracing in config
>> >   8c559e8d68630d64 perf cs-etm: Fix bitmap for option
>> >   2bb4ccbd95d7fbf5 tools headers UAPI: Update tools' copy of
>linux/coresight-pmu.h
>> >   42b2b570b34afb5f perf cs-etm: Update ETM metadata format
>> >   83bf6fb8b076c72f perf vendor events power9: Remove unsupported
>metrics
>> >   34968b9327c83589 perf buildid-cache: Add test for PE executable
>> >   9bb8b74bdb186bd3 perf docs: Add man pages to see also
>> >   d9fd5a718977702f perf tools: Generate mips syscalls_n64.c syscall
>table
>> >   $
>>
>> As far as I can tell you have all 6 patches.
>>
>
>Agreed - [1] I was trying is in fact:
>42b2b570b34afb5f perf cs-etm: Update ETM metadata format
>in the above list.

Ok, I misunderstood, good that's all already in, thanks for checking!

- Arnaldo
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH 0/6] coresight: Patches for v5.12 (perf tools)
  2021-03-02 17:11           ` Arnaldo Carvalho de Melo
@ 2021-03-03  7:50             ` Leo Yan
  0 siblings, 0 replies; 16+ messages in thread
From: Leo Yan @ 2021-03-03  7:50 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Mike Leach, Mathieu Poirier, Arnaldo Carvalho de Melo,
	Linux Kernel Mailing List

On Tue, Mar 02, 2021 at 02:11:10PM -0300, Arnaldo Carvalho de Melo wrote:
>
>
> On March 2, 2021 2:02:17 PM GMT-03:00, Mike Leach <mike.leach@linaro.org> wrote:
> >On Tue, 2 Mar 2021 at 16:42, Mathieu Poirier
> ><mathieu.poirier@linaro.org> wrote:
> >>
> >> On Tue, Mar 02, 2021 at 01:24:27PM -0300, Arnaldo Carvalho de Melo
> >wrote:
>
>
> >> > Can you please try one more time, these are the last csets on this
> >> > branch:
> >> >
> >> >   $ git log --oneline acme/tmp.perf/core -10
> >> >   8e1488a46dcf73b1 (HEAD -> perf/core, five/perf/core,
> >acme/tmp.perf/core, acme.korg/tmp.perf/core) perf cs-etm: Detect pid in
> >VMID for kernel running at EL2
> >> >   47f0d94c203751dd perf cs-etm: Add helper cs_etm__get_pid_fmt()
> >> >   30cb76aabfb4deab perf cs-etm: Support PID tracing in config
> >> >   8c559e8d68630d64 perf cs-etm: Fix bitmap for option
> >> >   2bb4ccbd95d7fbf5 tools headers UAPI: Update tools' copy of
> >linux/coresight-pmu.h
> >> >   42b2b570b34afb5f perf cs-etm: Update ETM metadata format
> >> >   83bf6fb8b076c72f perf vendor events power9: Remove unsupported
> >metrics
> >> >   34968b9327c83589 perf buildid-cache: Add test for PE executable
> >> >   9bb8b74bdb186bd3 perf docs: Add man pages to see also
> >> >   d9fd5a718977702f perf tools: Generate mips syscalls_n64.c syscall
> >table
> >> >   $
> >>
> >> As far as I can tell you have all 6 patches.
> >>
> >
> >Agreed - [1] I was trying is in fact:
> >42b2b570b34afb5f perf cs-etm: Update ETM metadata format
> >in the above list.
>
> Ok, I misunderstood, good that's all already in, thanks for checking!

Thanks for the effort, Arnaldo/Mathieu/Mike.

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-03-03 13:06 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-24 16:48 [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Mathieu Poirier
2021-02-24 16:48 ` [PATCH 1/6] perf: cs-etm: update ETM metadata format Mathieu Poirier
2021-02-24 16:48 ` [PATCH 2/6] tools headers UAPI: Update tools' copy of linux/coresight-pmu.h Mathieu Poirier
2021-02-24 16:48 ` [PATCH 3/6] perf cs-etm: Fix bitmap for option Mathieu Poirier
2021-02-24 16:48 ` [PATCH 4/6] perf cs-etm: Support PID tracing in config Mathieu Poirier
2021-02-24 16:48 ` [PATCH 5/6] perf cs-etm: Add helper cs_etm__get_pid_fmt() Mathieu Poirier
2021-02-24 16:48 ` [PATCH 6/6] perf cs-etm: Detect pid in VMID for kernel running at EL2 Mathieu Poirier
2021-02-24 22:20 ` [PATCH 0/6] coresight: Patches for v5.12 (perf tools) Arnaldo Carvalho de Melo
2021-03-02 12:51 ` Arnaldo Carvalho de Melo
2021-03-02 12:52 ` Arnaldo Carvalho de Melo
2021-03-02 14:23   ` Mike Leach
2021-03-02 16:24     ` Arnaldo Carvalho de Melo
2021-03-02 16:42       ` Mathieu Poirier
2021-03-02 17:02         ` Mike Leach
2021-03-02 17:11           ` Arnaldo Carvalho de Melo
2021-03-03  7:50             ` Leo Yan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.