linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files
@ 2017-10-12 10:34 Ganapatrao Kulkarni
  2017-10-12 10:34 ` [PATCH v7 1/4] perf utils: passing pmu as a parameter to function get_cpuid_str Ganapatrao Kulkarni
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Ganapatrao Kulkarni @ 2017-10-12 10:34 UTC (permalink / raw)
  To: linux-arm-kernel

Extending json/jevent framework for parsing arm64 event files.
Adding jevents for ThunderX2 implementation defined PMU events.

v7:
   - Addressed some more comments from Will Deacon.

v6 : Addressed comments [1] [2]

[1] https://patchwork.kernel.org/patch/9903099/
[2] https://patchwork.kernel.org/patch/9853899/

v5:
   - Addressed comments from Arnaldo.
   - Rebased to 4.13-rc5

v4:
   - Rebased to 4.13-rc1

v3:
   - Addressed comments from Will Deacon and Jayachandran C.
   - Rebased to 4.12-rc1

v2:
   - Updated as per Mark Rutland's suggestions.
   - Added provision for get_cpuid_str to get cpu id string
     from associated cpus of pmu core device.

v1: Initial patchset.

Ganapatrao Kulkarni (4):
  perf utils: passing pmu as a parameter to function get_cpuid_str
  perf tools arm64: Add support for get_cpuid_str function.
  perf utils: Add helper function is_pmu_core to detect PMU CORE devices
  perf vendor events arm64: Add ThunderX2 implementation defined pmu
    core events

 tools/perf/arch/arm64/util/Build                   |  1 +
 tools/perf/arch/arm64/util/header.c                | 65 ++++++++++++++++++++++
 tools/perf/arch/powerpc/util/header.c              |  2 +-
 tools/perf/arch/x86/util/header.c                  |  2 +-
 tools/perf/pmu-events/arch/arm64/mapfile.csv       | 15 +++++
 .../arch/arm64/thunderx2/thunderx2-imp-def.json    | 62 +++++++++++++++++++++
 tools/perf/util/header.h                           |  3 +-
 tools/perf/util/pmu.c                              | 52 +++++++++++++----
 8 files changed, 189 insertions(+), 13 deletions(-)
 create mode 100644 tools/perf/arch/arm64/util/header.c
 create mode 100644 tools/perf/pmu-events/arch/arm64/mapfile.csv
 create mode 100644 tools/perf/pmu-events/arch/arm64/thunderx2/thunderx2-imp-def.json

-- 
2.9.4

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

* [PATCH v7 1/4] perf utils: passing pmu as a parameter to function get_cpuid_str
  2017-10-12 10:34 [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files Ganapatrao Kulkarni
@ 2017-10-12 10:34 ` Ganapatrao Kulkarni
  2017-10-12 10:34 ` [PATCH v7 2/4] perf tools arm64: Add support for get_cpuid_str function Ganapatrao Kulkarni
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Ganapatrao Kulkarni @ 2017-10-12 10:34 UTC (permalink / raw)
  To: linux-arm-kernel

cpuid string will not be same on all CPUs on heterogeneous
platforms like ARM's big.LITTLE, adding provision(using pmu->cpus)
to find cpuid string from associated CPUs of PMU CORE device.

also optimise arguments to function pmu_add_cpu_aliases.

Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
---
 tools/perf/arch/powerpc/util/header.c |  2 +-
 tools/perf/arch/x86/util/header.c     |  2 +-
 tools/perf/util/header.h              |  3 ++-
 tools/perf/util/pmu.c                 | 13 +++++++------
 4 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/tools/perf/arch/powerpc/util/header.c b/tools/perf/arch/powerpc/util/header.c
index 9aaa6f5..2953681 100644
--- a/tools/perf/arch/powerpc/util/header.c
+++ b/tools/perf/arch/powerpc/util/header.c
@@ -34,7 +34,7 @@ get_cpuid(char *buffer, size_t sz)
 }
 
 char *
-get_cpuid_str(void)
+get_cpuid_str(struct perf_pmu *pmu __maybe_unused)
 {
 	char *bufp;
 
diff --git a/tools/perf/arch/x86/util/header.c b/tools/perf/arch/x86/util/header.c
index a74a48d..d52bc27 100644
--- a/tools/perf/arch/x86/util/header.c
+++ b/tools/perf/arch/x86/util/header.c
@@ -65,7 +65,7 @@ get_cpuid(char *buffer, size_t sz)
 }
 
 char *
-get_cpuid_str(void)
+get_cpuid_str(struct perf_pmu *pmu __maybe_unused)
 {
 	char *buf = malloc(128);
 
diff --git a/tools/perf/util/header.h b/tools/perf/util/header.h
index f7a16ee..3de4be9 100644
--- a/tools/perf/util/header.h
+++ b/tools/perf/util/header.h
@@ -8,6 +8,7 @@
 #include <linux/types.h>
 #include "event.h"
 #include "env.h"
+#include "pmu.h"
 
 enum {
 	HEADER_RESERVED		= 0,	/* always cleared */
@@ -165,5 +166,5 @@ int write_padded(struct feat_fd *fd, const void *bf,
  */
 int get_cpuid(char *buffer, size_t sz);
 
-char *get_cpuid_str(void);
+char *get_cpuid_str(struct perf_pmu *pmu __maybe_unused);
 #endif /* __PERF_HEADER_H */
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index ac16a9d..18edf86 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -511,7 +511,7 @@ static struct cpu_map *pmu_cpumask(const char *name)
  * Each architecture should provide a more precise id string that
  * can be use to match the architecture's "mapfile".
  */
-char * __weak get_cpuid_str(void)
+char * __weak get_cpuid_str(struct perf_pmu *pmu __maybe_unused)
 {
 	return NULL;
 }
@@ -521,19 +521,20 @@ char * __weak get_cpuid_str(void)
  * to the current running CPU. Then, add all PMU events from that table
  * as aliases.
  */
-static void pmu_add_cpu_aliases(struct list_head *head, const char *name)
+static void pmu_add_cpu_aliases(struct list_head *head, struct perf_pmu *pmu)
 {
 	int i;
 	struct pmu_events_map *map;
 	struct pmu_event *pe;
 	char *cpuid;
 	static bool printed;
+	const char *name = pmu->name;
 
 	cpuid = getenv("PERF_CPUID");
 	if (cpuid)
 		cpuid = strdup(cpuid);
 	if (!cpuid)
-		cpuid = get_cpuid_str();
+		cpuid = get_cpuid_str(pmu);
 	if (!cpuid)
 		return;
 
@@ -610,19 +611,19 @@ static struct perf_pmu *pmu_lookup(const char *name)
 	if (pmu_aliases(name, &aliases))
 		return NULL;
 
-	pmu_add_cpu_aliases(&aliases, name);
 	pmu = zalloc(sizeof(*pmu));
 	if (!pmu)
 		return NULL;
 
 	pmu->cpus = pmu_cpumask(name);
+	pmu->name = strdup(name);
+	pmu->type = type;
+	pmu_add_cpu_aliases(&aliases, pmu);
 
 	INIT_LIST_HEAD(&pmu->format);
 	INIT_LIST_HEAD(&pmu->aliases);
 	list_splice(&format, &pmu->format);
 	list_splice(&aliases, &pmu->aliases);
-	pmu->name = strdup(name);
-	pmu->type = type;
 	list_add_tail(&pmu->list, &pmus);
 
 	pmu->default_config = perf_pmu__get_default_config(pmu);
-- 
2.9.4

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

* [PATCH v7 2/4] perf tools arm64: Add support for get_cpuid_str function.
  2017-10-12 10:34 [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files Ganapatrao Kulkarni
  2017-10-12 10:34 ` [PATCH v7 1/4] perf utils: passing pmu as a parameter to function get_cpuid_str Ganapatrao Kulkarni
@ 2017-10-12 10:34 ` Ganapatrao Kulkarni
  2017-10-12 10:34 ` [PATCH v7 3/4] perf utils: Add helper function is_pmu_core to detect PMU CORE devices Ganapatrao Kulkarni
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Ganapatrao Kulkarni @ 2017-10-12 10:34 UTC (permalink / raw)
  To: linux-arm-kernel

function get_cpuid_str returns MIDR string of the first online
cpu from the range of cpus associated with the pmu core device.

Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
---
 tools/perf/arch/arm64/util/Build    |  1 +
 tools/perf/arch/arm64/util/header.c | 65 +++++++++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+)
 create mode 100644 tools/perf/arch/arm64/util/header.c

diff --git a/tools/perf/arch/arm64/util/Build b/tools/perf/arch/arm64/util/Build
index cef6fb3..b1ab72d 100644
--- a/tools/perf/arch/arm64/util/Build
+++ b/tools/perf/arch/arm64/util/Build
@@ -1,3 +1,4 @@
+libperf-y += header.o
 libperf-$(CONFIG_DWARF)     += dwarf-regs.o
 libperf-$(CONFIG_LOCAL_LIBUNWIND) += unwind-libunwind.o
 
diff --git a/tools/perf/arch/arm64/util/header.c b/tools/perf/arch/arm64/util/header.c
new file mode 100644
index 0000000..74567d7
--- /dev/null
+++ b/tools/perf/arch/arm64/util/header.c
@@ -0,0 +1,65 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <api/fs/fs.h>
+#include "header.h"
+
+#define MIDR "/regs/identification/midr_el1"
+#define MIDR_SIZE 19
+#define MIDR_REVISION_MASK      0xf
+#define MIDR_VARIANT_SHIFT      20
+#define MIDR_VARIANT_MASK       (0xf << MIDR_VARIANT_SHIFT)
+
+char *get_cpuid_str(struct perf_pmu *pmu)
+{
+	char *buf = NULL;
+	char path[PATH_MAX];
+	const char *sysfs = sysfs__mountpoint();
+	int cpu;
+	u64 midr = 0;
+	struct cpu_map *cpus;
+	FILE *file;
+
+	if (!sysfs || !pmu->cpus)
+		return NULL;
+
+	buf = malloc(MIDR_SIZE);
+	if (!buf)
+		return NULL;
+
+	/* read midr from list of cpus mapped to this pmu */
+	cpus = cpu_map__get(pmu->cpus);
+	for (cpu = 0; cpu < cpus->nr; cpu++) {
+		scnprintf(path, PATH_MAX, "%s/devices/system/cpu/cpu%d"MIDR,
+				sysfs, cpus->map[cpu]);
+
+		file = fopen(path, "r");
+		if (!file) {
+			pr_debug("fopen failed for file %s\n", path);
+			continue;
+		}
+
+		if (!fgets(buf, MIDR_SIZE, file)) {
+			fclose(file);
+			continue;
+		}
+		fclose(file);
+
+		/* Ignore/clear Variant[23:20] and
+		 * Revision[3:0] of MIDR
+		 */
+		midr = strtoul(buf, NULL, 16);
+		midr &= (~(MIDR_VARIANT_MASK | MIDR_REVISION_MASK));
+		scnprintf(buf, MIDR_SIZE, "0x%016lx", midr);
+		/* got midr break loop */
+		break;
+	}
+
+	if (!midr) {
+		pr_err("failed to get cpuid string for PMU %s\n", pmu->name);
+		free(buf);
+		buf = NULL;
+	}
+
+	cpu_map__put(cpus);
+	return buf;
+}
-- 
2.9.4

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

* [PATCH v7 3/4] perf utils: Add helper function is_pmu_core to detect PMU CORE devices
  2017-10-12 10:34 [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files Ganapatrao Kulkarni
  2017-10-12 10:34 ` [PATCH v7 1/4] perf utils: passing pmu as a parameter to function get_cpuid_str Ganapatrao Kulkarni
  2017-10-12 10:34 ` [PATCH v7 2/4] perf tools arm64: Add support for get_cpuid_str function Ganapatrao Kulkarni
@ 2017-10-12 10:34 ` Ganapatrao Kulkarni
  2017-10-12 10:34 ` [PATCH v7 4/4] perf vendor events arm64: Add ThunderX2 implementation defined pmu core events Ganapatrao Kulkarni
  2017-10-12 10:38 ` [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files Robert Richter
  4 siblings, 0 replies; 10+ messages in thread
From: Ganapatrao Kulkarni @ 2017-10-12 10:34 UTC (permalink / raw)
  To: linux-arm-kernel

On some platforms, PMU core devices sysfs name is not cpu.
Adding function is_pmu_core to detect PMU core devices using
core device specific hints in sysfs.

For arm64 platforms, all core devices have file "cpus" in sysfs.

Acked-by: Will Deacon <will.deacon@arm.com>
Tested-by: Shaokun Zhang <zhangshaokun@hisilicon.com>
Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
---
 tools/perf/util/pmu.c | 39 +++++++++++++++++++++++++++++++++++----
 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 18edf86..153f92d 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -506,6 +506,34 @@ static struct cpu_map *pmu_cpumask(const char *name)
 }
 
 /*
+ *  PMU CORE devices have different name other than cpu in sysfs on some
+ *  platforms. looking for possible sysfs files to identify as core device.
+ */
+static int is_pmu_core(const char *name)
+{
+	struct stat st;
+	char path[PATH_MAX];
+	const char *sysfs = sysfs__mountpoint();
+
+	if (!sysfs)
+		return 0;
+
+	/* Look for cpu sysfs (x86 and others) */
+	scnprintf(path, PATH_MAX, "%s/bus/event_source/devices/cpu", sysfs);
+	if ((stat(path, &st) == 0) &&
+			(strncmp(name, "cpu", strlen("cpu")) == 0))
+		return 1;
+
+	/* Look for cpu sysfs (specific to arm) */
+	scnprintf(path, PATH_MAX, "%s/bus/event_source/devices/%s/cpus",
+				sysfs, name);
+	if (stat(path, &st) == 0)
+		return 1;
+
+	return 0;
+}
+
+/*
  * Return the CPU id as a raw string.
  *
  * Each architecture should provide a more precise id string that
@@ -558,15 +586,18 @@ static void pmu_add_cpu_aliases(struct list_head *head, struct perf_pmu *pmu)
 	 */
 	i = 0;
 	while (1) {
-		const char *pname;
 
 		pe = &map->table[i++];
 		if (!pe->name)
 			break;
 
-		pname = pe->pmu ? pe->pmu : "cpu";
-		if (strncmp(pname, name, strlen(pname)))
-			continue;
+		if (!is_pmu_core(name)) {
+			/* check for uncore devices */
+			if (pe->pmu == NULL)
+				continue;
+			if (strncmp(pe->pmu, name, strlen(pe->pmu)))
+				continue;
+		}
 
 		/* need type casts to override 'const' */
 		__perf_pmu__new_alias(head, NULL, (char *)pe->name,
-- 
2.9.4

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

* [PATCH v7 4/4] perf vendor events arm64: Add ThunderX2 implementation defined pmu core events
  2017-10-12 10:34 [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files Ganapatrao Kulkarni
                   ` (2 preceding siblings ...)
  2017-10-12 10:34 ` [PATCH v7 3/4] perf utils: Add helper function is_pmu_core to detect PMU CORE devices Ganapatrao Kulkarni
@ 2017-10-12 10:34 ` Ganapatrao Kulkarni
  2017-10-12 10:38 ` [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files Robert Richter
  4 siblings, 0 replies; 10+ messages in thread
From: Ganapatrao Kulkarni @ 2017-10-12 10:34 UTC (permalink / raw)
  To: linux-arm-kernel

This is not a full event list, but a short list of useful events.

Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
---
 tools/perf/pmu-events/arch/arm64/mapfile.csv       | 15 ++++++
 .../arch/arm64/thunderx2/thunderx2-imp-def.json    | 62 ++++++++++++++++++++++
 2 files changed, 77 insertions(+)
 create mode 100644 tools/perf/pmu-events/arch/arm64/mapfile.csv
 create mode 100644 tools/perf/pmu-events/arch/arm64/thunderx2/thunderx2-imp-def.json

diff --git a/tools/perf/pmu-events/arch/arm64/mapfile.csv b/tools/perf/pmu-events/arch/arm64/mapfile.csv
new file mode 100644
index 0000000..7167086
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/mapfile.csv
@@ -0,0 +1,15 @@
+# Format:
+#	MIDR,Version,JSON/file/pathname,Type
+#
+# where
+#	MIDR	Processor version
+#		Variant[23:20] and Revision [3:0] should be zero.
+#	Version could be used to track version of of JSON file
+#		but currently unused.
+#	JSON/file/pathname is the path to JSON file, relative
+#		to tools/perf/pmu-events/arch/arm64/.
+#	Type is core, uncore etc
+#
+#
+#Family-model,Version,Filename,EventType
+0x00000000420f5160,v1,thunderx2,core
diff --git a/tools/perf/pmu-events/arch/arm64/thunderx2/thunderx2-imp-def.json b/tools/perf/pmu-events/arch/arm64/thunderx2/thunderx2-imp-def.json
new file mode 100644
index 0000000..2db45c4
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/thunderx2/thunderx2-imp-def.json
@@ -0,0 +1,62 @@
+[
+    {
+        "PublicDescription": "Attributable Level 1 data cache access, read",
+        "EventCode": "0x40",
+        "EventName": "l1d_cache_rd",
+        "BriefDescription": "L1D cache read",
+    },
+    {
+        "PublicDescription": "Attributable Level 1 data cache access, write ",
+        "EventCode": "0x41",
+        "EventName": "l1d_cache_wr",
+        "BriefDescription": "L1D cache write",
+    },
+    {
+        "PublicDescription": "Attributable Level 1 data cache refill, read",
+        "EventCode": "0x42",
+        "EventName": "l1d_cache_refill_rd",
+        "BriefDescription": "L1D cache refill read",
+    },
+    {
+        "PublicDescription": "Attributable Level 1 data cache refill, write",
+        "EventCode": "0x43",
+        "EventName": "l1d_cache_refill_wr",
+        "BriefDescription": "L1D refill write",
+    },
+    {
+        "PublicDescription": "Attributable Level 1 data TLB refill, read",
+        "EventCode": "0x4C",
+        "EventName": "l1d_tlb_refill_rd",
+        "BriefDescription": "L1D tlb refill read",
+    },
+    {
+        "PublicDescription": "Attributable Level 1 data TLB refill, write",
+        "EventCode": "0x4D",
+        "EventName": "l1d_tlb_refill_wr",
+        "BriefDescription": "L1D tlb refill write",
+    },
+    {
+        "PublicDescription": "Attributable Level 1 data or unified TLB access, read",
+        "EventCode": "0x4E",
+        "EventName": "l1d_tlb_rd",
+        "BriefDescription": "L1D tlb read",
+    },
+    {
+        "PublicDescription": "Attributable Level 1 data or unified TLB access, write",
+        "EventCode": "0x4F",
+        "EventName": "l1d_tlb_wr",
+        "BriefDescription": "L1D tlb write",
+    },
+    {
+        "PublicDescription": "Bus access read",
+        "EventCode": "0x60",
+        "EventName": "bus_access_rd",
+        "BriefDescription": "Bus access read",
+   },
+   {
+        "PublicDescription": "Bus access write",
+        "EventCode": "0x61",
+        "EventName": "bus_access_wr",
+        "BriefDescription": "Bus access write",
+   }
+]
-- 
2.9.4

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

* [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files
  2017-10-12 10:34 [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files Ganapatrao Kulkarni
                   ` (3 preceding siblings ...)
  2017-10-12 10:34 ` [PATCH v7 4/4] perf vendor events arm64: Add ThunderX2 implementation defined pmu core events Ganapatrao Kulkarni
@ 2017-10-12 10:38 ` Robert Richter
  2017-10-12 10:50   ` Ganapatrao Kulkarni
  4 siblings, 1 reply; 10+ messages in thread
From: Robert Richter @ 2017-10-12 10:38 UTC (permalink / raw)
  To: linux-arm-kernel

On 12.10.17 16:04:15, Ganapatrao Kulkarni wrote:

>  tools/perf/arch/arm64/util/Build                   |  1 +
>  tools/perf/arch/arm64/util/header.c                | 65 ++++++++++++++++++++++
>  tools/perf/arch/powerpc/util/header.c              |  2 +-
>  tools/perf/arch/x86/util/header.c                  |  2 +-
>  tools/perf/pmu-events/arch/arm64/mapfile.csv       | 15 +++++
>  .../arch/arm64/thunderx2/thunderx2-imp-def.json    | 62 +++++++++++++++++++++

I guess the dir needs to be named 'cavium'.

-Robert

>  tools/perf/util/header.h                           |  3 +-
>  tools/perf/util/pmu.c                              | 52 +++++++++++++----
>  8 files changed, 189 insertions(+), 13 deletions(-)

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

* [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files
  2017-10-12 10:38 ` [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files Robert Richter
@ 2017-10-12 10:50   ` Ganapatrao Kulkarni
  2017-10-12 10:58     ` Will Deacon
  0 siblings, 1 reply; 10+ messages in thread
From: Ganapatrao Kulkarni @ 2017-10-12 10:50 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Robert,

On Thu, Oct 12, 2017 at 4:08 PM, Robert Richter <rric@kernel.org> wrote:
> On 12.10.17 16:04:15, Ganapatrao Kulkarni wrote:
>
>>  tools/perf/arch/arm64/util/Build                   |  1 +
>>  tools/perf/arch/arm64/util/header.c                | 65 ++++++++++++++++++++++
>>  tools/perf/arch/powerpc/util/header.c              |  2 +-
>>  tools/perf/arch/x86/util/header.c                  |  2 +-
>>  tools/perf/pmu-events/arch/arm64/mapfile.csv       | 15 +++++
>>  .../arch/arm64/thunderx2/thunderx2-imp-def.json    | 62 +++++++++++++++++++++
>
> I guess the dir needs to be named 'cavium'.

i dont think so ,  while compilation arch type is detected, it has to be arm64
refer SRCARCH in pmu-events/Build
>
> -Robert
>
>>  tools/perf/util/header.h                           |  3 +-
>>  tools/perf/util/pmu.c                              | 52 +++++++++++++----
>>  8 files changed, 189 insertions(+), 13 deletions(-)

thanks
Ganapat

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

* [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files
  2017-10-12 10:50   ` Ganapatrao Kulkarni
@ 2017-10-12 10:58     ` Will Deacon
  2017-10-12 11:45       ` Zhangshaokun
  0 siblings, 1 reply; 10+ messages in thread
From: Will Deacon @ 2017-10-12 10:58 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Oct 12, 2017 at 04:20:06PM +0530, Ganapatrao Kulkarni wrote:
> Hi Robert,
> 
> On Thu, Oct 12, 2017 at 4:08 PM, Robert Richter <rric@kernel.org> wrote:
> > On 12.10.17 16:04:15, Ganapatrao Kulkarni wrote:
> >
> >>  tools/perf/arch/arm64/util/Build                   |  1 +
> >>  tools/perf/arch/arm64/util/header.c                | 65 ++++++++++++++++++++++
> >>  tools/perf/arch/powerpc/util/header.c              |  2 +-
> >>  tools/perf/arch/x86/util/header.c                  |  2 +-
> >>  tools/perf/pmu-events/arch/arm64/mapfile.csv       | 15 +++++
> >>  .../arch/arm64/thunderx2/thunderx2-imp-def.json    | 62 +++++++++++++++++++++
> >
> > I guess the dir needs to be named 'cavium'.
> 
> i dont think so ,  while compilation arch type is detected, it has to be arm64
> refer SRCARCH in pmu-events/Build

The full name should be:

.../arch/arm64/cavium/thunderx2-imp-def.json

Will

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

* [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files
  2017-10-12 10:58     ` Will Deacon
@ 2017-10-12 11:45       ` Zhangshaokun
  2017-10-12 13:47         ` Ganapatrao Kulkarni
  0 siblings, 1 reply; 10+ messages in thread
From: Zhangshaokun @ 2017-10-12 11:45 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Will,

On 2017/10/12 18:58, Will Deacon wrote:
> On Thu, Oct 12, 2017 at 04:20:06PM +0530, Ganapatrao Kulkarni wrote:
>> Hi Robert,
>>
>> On Thu, Oct 12, 2017 at 4:08 PM, Robert Richter <rric@kernel.org> wrote:
>>> On 12.10.17 16:04:15, Ganapatrao Kulkarni wrote:
>>>
>>>>  tools/perf/arch/arm64/util/Build                   |  1 +
>>>>  tools/perf/arch/arm64/util/header.c                | 65 ++++++++++++++++++++++
>>>>  tools/perf/arch/powerpc/util/header.c              |  2 +-
>>>>  tools/perf/arch/x86/util/header.c                  |  2 +-
>>>>  tools/perf/pmu-events/arch/arm64/mapfile.csv       | 15 +++++
>>>>  .../arch/arm64/thunderx2/thunderx2-imp-def.json    | 62 +++++++++++++++++++++
>>>
>>> I guess the dir needs to be named 'cavium'.
>>
>> i dont think so ,  while compilation arch type is detected, it has to be arm64
>> refer SRCARCH in pmu-events/Build
> 
> The full name should be:
> 
> .../arch/arm64/cavium/thunderx2-imp-def.json
> 

It works for us (HiSilicon) as .../arch/arm64/hisilicon/hip08-imp-def.json.

Thanks,
Shaokun

> Will
> 
> .
> 

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

* [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files
  2017-10-12 11:45       ` Zhangshaokun
@ 2017-10-12 13:47         ` Ganapatrao Kulkarni
  0 siblings, 0 replies; 10+ messages in thread
From: Ganapatrao Kulkarni @ 2017-10-12 13:47 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Oct 12, 2017 at 5:15 PM, Zhangshaokun
<zhangshaokun@hisilicon.com> wrote:
> Hi Will,
>
> On 2017/10/12 18:58, Will Deacon wrote:
>> On Thu, Oct 12, 2017 at 04:20:06PM +0530, Ganapatrao Kulkarni wrote:
>>> Hi Robert,
>>>
>>> On Thu, Oct 12, 2017 at 4:08 PM, Robert Richter <rric@kernel.org> wrote:
>>>> On 12.10.17 16:04:15, Ganapatrao Kulkarni wrote:
>>>>
>>>>>  tools/perf/arch/arm64/util/Build                   |  1 +
>>>>>  tools/perf/arch/arm64/util/header.c                | 65 ++++++++++++++++++++++
>>>>>  tools/perf/arch/powerpc/util/header.c              |  2 +-
>>>>>  tools/perf/arch/x86/util/header.c                  |  2 +-
>>>>>  tools/perf/pmu-events/arch/arm64/mapfile.csv       | 15 +++++
>>>>>  .../arch/arm64/thunderx2/thunderx2-imp-def.json    | 62 +++++++++++++++++++++
>>>>
>>>> I guess the dir needs to be named 'cavium'.
>>>
>>> i dont think so ,  while compilation arch type is detected, it has to be arm64
>>> refer SRCARCH in pmu-events/Build
>>
>> The full name should be:
>>
>> .../arch/arm64/cavium/thunderx2-imp-def.json

ok,  i am sending patch with renaming directory to cavium.

>>
>
> It works for us (HiSilicon) as .../arch/arm64/hisilicon/hip08-imp-def.json.
>
> Thanks,
> Shaokun
>
>> Will
>>
>> .
>>
>

thanks
Ganapat

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

end of thread, other threads:[~2017-10-12 13:47 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-12 10:34 [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files Ganapatrao Kulkarni
2017-10-12 10:34 ` [PATCH v7 1/4] perf utils: passing pmu as a parameter to function get_cpuid_str Ganapatrao Kulkarni
2017-10-12 10:34 ` [PATCH v7 2/4] perf tools arm64: Add support for get_cpuid_str function Ganapatrao Kulkarni
2017-10-12 10:34 ` [PATCH v7 3/4] perf utils: Add helper function is_pmu_core to detect PMU CORE devices Ganapatrao Kulkarni
2017-10-12 10:34 ` [PATCH v7 4/4] perf vendor events arm64: Add ThunderX2 implementation defined pmu core events Ganapatrao Kulkarni
2017-10-12 10:38 ` [PATCH v7 0/4] Add support for ThunderX2 pmu events using json files Robert Richter
2017-10-12 10:50   ` Ganapatrao Kulkarni
2017-10-12 10:58     ` Will Deacon
2017-10-12 11:45       ` Zhangshaokun
2017-10-12 13:47         ` Ganapatrao Kulkarni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).