* [PATCH v5 0/3] powerpc/perf: Add json file support for hv_24x7 core level events
@ 2020-08-16 9:07 Kajol Jain
2020-08-16 9:07 ` [PATCH v5 1/3] perf jevents: Add support for parsing perchip/percore events Kajol Jain
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Kajol Jain @ 2020-08-16 9:07 UTC (permalink / raw)
To: acme
Cc: peterz, mingo, mark.rutland, alexander.shishkin, pc, jolsa,
namhyung, ak, yao.jin, linux-kernel, linux-perf-users, irogers,
maddy, ravi.bangoria, anju, kan.liang, nasastry, kjain
Patchset enhance current runtime parameter support. It introduces new
fields like "PerChip" and "PerCore" similar to the field "PerPkg" which is
used to specify perpkg events.
The "PerCore" and "PerChip" specifies whether its core or chip events.
Based on which we can decide which runtime parameter user want to
access. Now character '?' can refers different parameter based on user
requirement.
Initially, every time we want to add new terms like chip, core, thread
etc, we need to create corrsponding fields in pmu_events and event
struct.
This patchset adds an enum called 'aggr_mode_class' which store all these
aggregation like perchip/percore. It also adds new field 'AggregationMode'
to capture these terms.
Now, if user wants to add any new term, they just need to add it in
the enum defined.
Changelog:
v4 -> v5
- Remove intel side changes on uncore events by removing PerPkg
field from enum "AggregationMode" and other corresponding changes.
Link to previous patchset: https://lkml.org/lkml/2020/7/20/124
Kajol Jain (3):
perf jevents: Add support for parsing perchip/percore events
perf/tools: Pass pmu_event structure as a parameter for
arch_get_runtimeparam
perf/tools/pmu_events/powerpc: Add hv_24x7 core level metric events
tools/perf/arch/powerpc/util/header.c | 7 ++--
.../arch/powerpc/power9/nest_metrics.json | 35 ++++++++++++-------
tools/perf/pmu-events/jevents.c | 32 +++++++++++++----
tools/perf/pmu-events/jevents.h | 2 +-
tools/perf/pmu-events/pmu-events.h | 6 ++++
tools/perf/util/metricgroup.c | 5 ++-
tools/perf/util/metricgroup.h | 3 +-
7 files changed, 63 insertions(+), 27 deletions(-)
--
2.26.2
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v5 1/3] perf jevents: Add support for parsing perchip/percore events
2020-08-16 9:07 [PATCH v5 0/3] powerpc/perf: Add json file support for hv_24x7 core level events Kajol Jain
@ 2020-08-16 9:07 ` Kajol Jain
2020-08-16 16:35 ` Andi Kleen
2020-08-16 9:07 ` [PATCH v5 2/3] perf/tools: Pass pmu_event structure as a parameter for arch_get_runtimeparam Kajol Jain
2020-08-16 9:07 ` [PATCH v5 3/3] perf/tools/pmu_events/powerpc: Add hv_24x7 core level metric events Kajol Jain
2 siblings, 1 reply; 6+ messages in thread
From: Kajol Jain @ 2020-08-16 9:07 UTC (permalink / raw)
To: acme
Cc: peterz, mingo, mark.rutland, alexander.shishkin, pc, jolsa,
namhyung, ak, yao.jin, linux-kernel, linux-perf-users, irogers,
maddy, ravi.bangoria, anju, kan.liang, nasastry, kjain
Initially, every time we want to add new terms like chip, core thread etc,
we need to create corrsponding fields in pmu_events and event struct.
This patch adds an enum called 'aggr_mode_class' which store all these
aggregation like perchip/percore. It also adds new field 'aggr_mode'
to capture these terms.
Now, if user wants to add any new term, they just need to add it in
the enum defined.
Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
Acked-by: Ian Rogers <irogers@google.com>
---
tools/perf/pmu-events/jevents.c | 32 +++++++++++++++++++++++-------
tools/perf/pmu-events/jevents.h | 2 +-
tools/perf/pmu-events/pmu-events.h | 6 ++++++
3 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c
index fa86c5f997cc..f97394dac1db 100644
--- a/tools/perf/pmu-events/jevents.c
+++ b/tools/perf/pmu-events/jevents.c
@@ -49,10 +49,20 @@
#include "jsmn.h"
#include "json.h"
#include "jevents.h"
+#include "pmu-events.h"
int verbose;
char *prog;
+enum aggr_mode_class convert(const char *aggr_mode)
+{
+ if (!strcmp(aggr_mode, "PerCore"))
+ return PerCore;
+ else if (!strcmp(aggr_mode, "PerChip"))
+ return PerChip;
+ return -1;
+}
+
int eprintf(int level, int var, const char *fmt, ...)
{
@@ -321,7 +331,7 @@ static void print_events_table_prefix(FILE *fp, const char *tblname)
static int print_events_table_entry(void *data, char *name, char *event,
char *desc, char *long_desc,
char *pmu, char *unit, char *perpkg,
- char *metric_expr,
+ char *metric_expr, char *aggr_mode,
char *metric_name, char *metric_group,
char *deprecated, char *metric_constraint)
{
@@ -345,6 +355,8 @@ static int print_events_table_entry(void *data, char *name, char *event,
fprintf(outfp, "\t.long_desc = \"%s\",\n", long_desc);
if (pmu)
fprintf(outfp, "\t.pmu = \"%s\",\n", pmu);
+ if (aggr_mode)
+ fprintf(outfp, "\t.aggr_mode = \"%d\",\n", convert(aggr_mode));
if (unit)
fprintf(outfp, "\t.unit = \"%s\",\n", unit);
if (perpkg)
@@ -372,6 +384,7 @@ struct event_struct {
char *long_desc;
char *pmu;
char *unit;
+ char *aggr_mode;
char *perpkg;
char *metric_expr;
char *metric_name;
@@ -402,6 +415,7 @@ struct event_struct {
op(pmu); \
op(unit); \
op(perpkg); \
+ op(aggr_mode); \
op(metric_expr); \
op(metric_name); \
op(metric_group); \
@@ -424,7 +438,7 @@ static void free_arch_std_events(void)
static int save_arch_std_events(void *data, char *name, char *event,
char *desc, char *long_desc, char *pmu,
char *unit, char *perpkg, char *metric_expr,
- char *metric_name, char *metric_group,
+ char *aggr_mode, char *metric_name, char *metric_group,
char *deprecated, char *metric_constraint)
{
struct event_struct *es;
@@ -487,8 +501,8 @@ static char *real_event(const char *name, char *event)
static int
try_fixup(const char *fn, char *arch_std, char **event, char **desc,
char **name, char **long_desc, char **pmu, char **filter,
- char **perpkg, char **unit, char **metric_expr, char **metric_name,
- char **metric_group, unsigned long long eventcode,
+ char **perpkg, char **unit, char **metric_expr, char **aggr_mode,
+ char **metric_name, char **metric_group, unsigned long long eventcode,
char **deprecated, char **metric_constraint)
{
/* try to find matching event from arch standard values */
@@ -516,7 +530,7 @@ int json_events(const char *fn,
int (*func)(void *data, char *name, char *event, char *desc,
char *long_desc,
char *pmu, char *unit, char *perpkg,
- char *metric_expr,
+ char *metric_expr, char *aggr_mode,
char *metric_name, char *metric_group,
char *deprecated, char *metric_constraint),
void *data)
@@ -543,6 +557,7 @@ int json_events(const char *fn,
char *pmu = NULL;
char *filter = NULL;
char *perpkg = NULL;
+ char *aggr_mode = NULL;
char *unit = NULL;
char *metric_expr = NULL;
char *metric_name = NULL;
@@ -627,6 +642,8 @@ int json_events(const char *fn,
addfield(map, &unit, "", "", val);
} else if (json_streq(map, field, "PerPkg")) {
addfield(map, &perpkg, "", "", val);
+ } else if (json_streq(map, field, "AggregationMode")) {
+ addfield(map, &aggr_mode, "", "", val);
} else if (json_streq(map, field, "Deprecated")) {
addfield(map, &deprecated, "", "", val);
} else if (json_streq(map, field, "MetricName")) {
@@ -674,14 +691,14 @@ int json_events(const char *fn,
*/
err = try_fixup(fn, arch_std, &event, &desc, &name,
&long_desc, &pmu, &filter, &perpkg,
- &unit, &metric_expr, &metric_name,
+ &unit, &metric_expr, &aggr_mode, &metric_name,
&metric_group, eventcode,
&deprecated, &metric_constraint);
if (err)
goto free_strings;
}
err = func(data, name, real_event(name, event), desc, long_desc,
- pmu, unit, perpkg, metric_expr, metric_name,
+ pmu, unit, perpkg, metric_expr, aggr_mode, metric_name,
metric_group, deprecated, metric_constraint);
free_strings:
free(event);
@@ -692,6 +709,7 @@ int json_events(const char *fn,
free(pmu);
free(filter);
free(perpkg);
+ free(aggr_mode);
free(deprecated);
free(unit);
free(metric_expr);
diff --git a/tools/perf/pmu-events/jevents.h b/tools/perf/pmu-events/jevents.h
index 2afc8304529e..f64d6ebb245f 100644
--- a/tools/perf/pmu-events/jevents.h
+++ b/tools/perf/pmu-events/jevents.h
@@ -7,7 +7,7 @@ int json_events(const char *fn,
char *long_desc,
char *pmu,
char *unit, char *perpkg, char *metric_expr,
- char *metric_name, char *metric_group,
+ char *aggr_mode, char *metric_name, char *metric_group,
char *deprecated, char *metric_constraint),
void *data);
char *get_cpu_str(void);
diff --git a/tools/perf/pmu-events/pmu-events.h b/tools/perf/pmu-events/pmu-events.h
index c8f306b572f4..e84496527611 100644
--- a/tools/perf/pmu-events/pmu-events.h
+++ b/tools/perf/pmu-events/pmu-events.h
@@ -2,6 +2,11 @@
#ifndef PMU_EVENTS_H
#define PMU_EVENTS_H
+enum aggr_mode_class {
+ PerChip = 1,
+ PerCore
+};
+
/*
* Describe each PMU event. Each CPU has a table of PMU events.
*/
@@ -15,6 +20,7 @@ struct pmu_event {
const char *unit;
const char *perpkg;
const char *metric_expr;
+ const char *aggr_mode;
const char *metric_name;
const char *metric_group;
const char *deprecated;
--
2.26.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v5 2/3] perf/tools: Pass pmu_event structure as a parameter for arch_get_runtimeparam
2020-08-16 9:07 [PATCH v5 0/3] powerpc/perf: Add json file support for hv_24x7 core level events Kajol Jain
2020-08-16 9:07 ` [PATCH v5 1/3] perf jevents: Add support for parsing perchip/percore events Kajol Jain
@ 2020-08-16 9:07 ` Kajol Jain
2020-08-16 9:07 ` [PATCH v5 3/3] perf/tools/pmu_events/powerpc: Add hv_24x7 core level metric events Kajol Jain
2 siblings, 0 replies; 6+ messages in thread
From: Kajol Jain @ 2020-08-16 9:07 UTC (permalink / raw)
To: acme
Cc: peterz, mingo, mark.rutland, alexander.shishkin, pc, jolsa,
namhyung, ak, yao.jin, linux-kernel, linux-perf-users, irogers,
maddy, ravi.bangoria, anju, kan.liang, nasastry, kjain
This patch adds passing of pmu_event as a parameter in function
'arch_get_runtimeparam' which can be used to get details like
if the event is percore/perchip.
Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
Acked-by: Ian Rogers <irogers@google.com>
---
| 7 +++++--
tools/perf/util/metricgroup.c | 5 ++---
tools/perf/util/metricgroup.h | 3 ++-
3 files changed, 9 insertions(+), 6 deletions(-)
--git a/tools/perf/arch/powerpc/util/header.c b/tools/perf/arch/powerpc/util/header.c
index 1a950171a66f..58b2d610aadb 100644
--- a/tools/perf/arch/powerpc/util/header.c
+++ b/tools/perf/arch/powerpc/util/header.c
@@ -40,8 +40,11 @@ get_cpuid_str(struct perf_pmu *pmu __maybe_unused)
return bufp;
}
-int arch_get_runtimeparam(void)
+int arch_get_runtimeparam(struct pmu_event *pe)
{
int count;
- return sysfs__read_int("/devices/hv_24x7/interface/sockets", &count) < 0 ? 1 : count;
+ char path[PATH_MAX] = "/devices/hv_24x7/interface/";
+
+ atoi(pe->aggr_mode) == PerChip ? strcat(path, "sockets") : strcat(path, "coresperchip");
+ return sysfs__read_int(path, &count) < 0 ? 1 : count;
}
diff --git a/tools/perf/util/metricgroup.c b/tools/perf/util/metricgroup.c
index 8831b964288f..c387aa1615ba 100644
--- a/tools/perf/util/metricgroup.c
+++ b/tools/perf/util/metricgroup.c
@@ -15,7 +15,6 @@
#include "rblist.h"
#include <string.h>
#include <errno.h>
-#include "pmu-events/pmu-events.h"
#include "strlist.h"
#include <assert.h>
#include <linux/ctype.h>
@@ -634,7 +633,7 @@ static bool metricgroup__has_constraint(struct pmu_event *pe)
return false;
}
-int __weak arch_get_runtimeparam(void)
+int __weak arch_get_runtimeparam(struct pmu_event *pe __maybe_unused)
{
return 1;
}
@@ -902,7 +901,7 @@ static int add_metric(struct list_head *metric_list,
} else {
int j, count;
- count = arch_get_runtimeparam();
+ count = arch_get_runtimeparam(pe);
/* This loop is added to create multiple
* events depend on count value and add
diff --git a/tools/perf/util/metricgroup.h b/tools/perf/util/metricgroup.h
index 62623a39cbec..491a5d78252d 100644
--- a/tools/perf/util/metricgroup.h
+++ b/tools/perf/util/metricgroup.h
@@ -5,6 +5,7 @@
#include <linux/list.h>
#include <linux/rbtree.h>
#include <stdbool.h>
+#include "pmu-events/pmu-events.h"
struct evsel;
struct evlist;
@@ -52,6 +53,6 @@ int metricgroup__parse_groups_test(struct evlist *evlist,
void metricgroup__print(bool metrics, bool groups, char *filter,
bool raw, bool details);
bool metricgroup__has_metric(const char *metric);
-int arch_get_runtimeparam(void);
+int arch_get_runtimeparam(struct pmu_event *pe __maybe_unused);
void metricgroup__rblist_exit(struct rblist *metric_events);
#endif
--
2.26.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v5 3/3] perf/tools/pmu_events/powerpc: Add hv_24x7 core level metric events
2020-08-16 9:07 [PATCH v5 0/3] powerpc/perf: Add json file support for hv_24x7 core level events Kajol Jain
2020-08-16 9:07 ` [PATCH v5 1/3] perf jevents: Add support for parsing perchip/percore events Kajol Jain
2020-08-16 9:07 ` [PATCH v5 2/3] perf/tools: Pass pmu_event structure as a parameter for arch_get_runtimeparam Kajol Jain
@ 2020-08-16 9:07 ` Kajol Jain
2 siblings, 0 replies; 6+ messages in thread
From: Kajol Jain @ 2020-08-16 9:07 UTC (permalink / raw)
To: acme
Cc: peterz, mingo, mark.rutland, alexander.shishkin, pc, jolsa,
namhyung, ak, yao.jin, linux-kernel, linux-perf-users, irogers,
maddy, ravi.bangoria, anju, kan.liang, nasastry, kjain
This patch adds hv_24x7 core level events in nest_metric.json file
and also add PerChip/PerCore field in metric events.
Result:
power9 platform:
command:# ./perf stat --metric-only -M PowerBUS_Frequency -C 0 -I 1000
1.000070601 1.9 2.0
2.000253881 2.0 1.9
3.000364810 2.0 2.0
Signed-off-by: Kajol Jain <kjain@linux.ibm.com>
Acked-by: Ian Rogers <irogers@google.com>
---
.../arch/powerpc/power9/nest_metrics.json | 35 ++++++++++++-------
1 file changed, 22 insertions(+), 13 deletions(-)
diff --git a/tools/perf/pmu-events/arch/powerpc/power9/nest_metrics.json b/tools/perf/pmu-events/arch/powerpc/power9/nest_metrics.json
index 8383a37647ad..7a5d1bf543f8 100644
--- a/tools/perf/pmu-events/arch/powerpc/power9/nest_metrics.json
+++ b/tools/perf/pmu-events/arch/powerpc/power9/nest_metrics.json
@@ -1,37 +1,46 @@
[
{
- "MetricExpr": "(hv_24x7@PM_MCS01_128B_RD_DISP_PORT01\\,chip\\=?@ + hv_24x7@PM_MCS01_128B_RD_DISP_PORT23\\,chip\\=?@ + hv_24x7@PM_MCS23_128B_RD_DISP_PORT01\\,chip\\=?@ + hv_24x7@PM_MCS23_128B_RD_DISP_PORT23\\,chip\\=?@)",
- "MetricName": "Memory_RD_BW_Chip",
- "MetricGroup": "Memory_BW",
- "ScaleUnit": "1.6e-2MB"
+ "MetricExpr": "(hv_24x7@PM_MCS01_128B_RD_DISP_PORT01\\,chip\\=?@ + hv_24x7@PM_MCS01_128B_RD_DISP_PORT23\\,chip\\=?@ + hv_24x7@PM_MCS23_128B_RD_DISP_PORT01\\,chip\\=?@ + hv_24x7@PM_MCS23_128B_RD_DISP_PORT23\\,chip\\=?@)",
+ "MetricName": "Memory_RD_BW_Chip",
+ "MetricGroup": "Memory_BW",
+ "ScaleUnit": "1.6e-2MB",
+ "AggregationMode": "PerChip"
},
{
"MetricExpr": "(hv_24x7@PM_MCS01_128B_WR_DISP_PORT01\\,chip\\=?@ + hv_24x7@PM_MCS01_128B_WR_DISP_PORT23\\,chip\\=?@ + hv_24x7@PM_MCS23_128B_WR_DISP_PORT01\\,chip\\=?@ + hv_24x7@PM_MCS23_128B_WR_DISP_PORT23\\,chip\\=?@ )",
- "MetricName": "Memory_WR_BW_Chip",
- "MetricGroup": "Memory_BW",
- "ScaleUnit": "1.6e-2MB"
+ "MetricName": "Memory_WR_BW_Chip",
+ "MetricGroup": "Memory_BW",
+ "ScaleUnit": "1.6e-2MB",
+ "AggregationMode": "PerChip"
},
{
"MetricExpr": "(hv_24x7@PM_PB_CYC\\,chip\\=?@ )",
- "MetricName": "PowerBUS_Frequency",
- "ScaleUnit": "2.5e-7GHz"
+ "MetricName": "PowerBUS_Frequency",
+ "ScaleUnit": "2.5e-7GHz",
+ "AggregationMode": "PerChip"
+ },
+ {
+ "MetricExpr": "(hv_24x7@CPM_CS_32MHZ_CYC\\,domain\\=3\\,core\\=?@ )",
+ "MetricName": "CPM_CS_32MHZ_CYC",
+ "ScaleUnit": "1MHz",
+ "AggregationMode": "PerCore"
},
{
"MetricExpr" : "nest_mcs01_imc@PM_MCS01_128B_RD_DISP_PORT01@ + nest_mcs01_imc@PM_MCS01_128B_RD_DISP_PORT23@",
"MetricName" : "mcs01-read",
- "MetricGroup" : "memory_bw",
+ "MetricGroup" : "memory-bandwidth",
"ScaleUnit": "6.1e-5MB"
},
{
"MetricExpr" : "nest_mcs23_imc@PM_MCS23_128B_RD_DISP_PORT01@ + nest_mcs23_imc@PM_MCS23_128B_RD_DISP_PORT23@",
"MetricName" : "mcs23-read",
- "MetricGroup" : "memory_bw",
+ "MetricGroup" : "memory-bandwidth",
"ScaleUnit": "6.1e-5MB"
},
{
"MetricExpr" : "nest_mcs01_imc@PM_MCS01_128B_WR_DISP_PORT01@ + nest_mcs01_imc@PM_MCS01_128B_WR_DISP_PORT23@",
"MetricName" : "mcs01-write",
- "MetricGroup" : "memory_bw",
+ "MetricGroup" : "memory-bandwidth",
"ScaleUnit": "6.1e-5MB"
},
{
@@ -48,7 +57,7 @@
{
"MetricExpr" : "(nest_mcs01_imc@PM_MCS01_128B_RD_DISP_PORT01@ + nest_mcs01_imc@PM_MCS01_128B_RD_DISP_PORT23@ + nest_mcs23_imc@PM_MCS23_128B_RD_DISP_PORT01@ + nest_mcs23_imc@PM_MCS23_128B_RD_DISP_PORT23@ + nest_mcs01_imc@PM_MCS01_128B_WR_DISP_PORT01@ + nest_mcs01_imc@PM_MCS01_128B_WR_DISP_PORT23@ + nest_mcs23_imc@PM_MCS23_128B_WR_DISP_PORT01@ + nest_mcs23_imc@PM_MCS23_128B_WR_DISP_PORT23@)",
"MetricName" : "Memory-bandwidth-MCS",
- "MetricGroup" : "memory_bw",
+ "MetricGroup" : "memory-bandwidth",
"ScaleUnit": "6.1e-5MB"
}
]
--
2.26.2
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v5 1/3] perf jevents: Add support for parsing perchip/percore events
2020-08-16 9:07 ` [PATCH v5 1/3] perf jevents: Add support for parsing perchip/percore events Kajol Jain
@ 2020-08-16 16:35 ` Andi Kleen
2020-08-18 9:16 ` kajoljain
0 siblings, 1 reply; 6+ messages in thread
From: Andi Kleen @ 2020-08-16 16:35 UTC (permalink / raw)
To: Kajol Jain
Cc: acme, peterz, mingo, mark.rutland, alexander.shishkin, pc, jolsa,
namhyung, yao.jin, linux-kernel, linux-perf-users, irogers,
maddy, ravi.bangoria, anju, kan.liang, nasastry
> @@ -321,7 +331,7 @@ static void print_events_table_prefix(FILE *fp, const char *tblname)
> static int print_events_table_entry(void *data, char *name, char *event,
> char *desc, char *long_desc,
> char *pmu, char *unit, char *perpkg,
> - char *metric_expr,
> + char *metric_expr, char *aggr_mode,
> char *metric_name, char *metric_group,
> char *deprecated, char *metric_constraint)
We should really define a struct now to pass the parameters,
the callback prototype is getting ridiculous.
I know it's my fault originally, but sorry you probably have to do it
because you are touching it last.
-Andi
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v5 1/3] perf jevents: Add support for parsing perchip/percore events
2020-08-16 16:35 ` Andi Kleen
@ 2020-08-18 9:16 ` kajoljain
0 siblings, 0 replies; 6+ messages in thread
From: kajoljain @ 2020-08-18 9:16 UTC (permalink / raw)
To: Andi Kleen
Cc: acme, peterz, mingo, mark.rutland, alexander.shishkin, pc, jolsa,
namhyung, yao.jin, linux-kernel, linux-perf-users, irogers,
maddy, ravi.bangoria, anju, kan.liang, nasastry
On 8/16/20 10:05 PM, Andi Kleen wrote:
>> @@ -321,7 +331,7 @@ static void print_events_table_prefix(FILE *fp, const char *tblname)
>> static int print_events_table_entry(void *data, char *name, char *event,
>> char *desc, char *long_desc,
>> char *pmu, char *unit, char *perpkg,
>> - char *metric_expr,
>> + char *metric_expr, char *aggr_mode,
>> char *metric_name, char *metric_group,
>> char *deprecated, char *metric_constraint)
>
> We should really define a struct now to pass the parameters,
> the callback prototype is getting ridiculous.
>
> I know it's my fault originally, but sorry you probably have to do it
> because you are touching it last.
Hi Andi,
I will look into it.
Thanks,
Kajol Jain
>
> -Andi
>
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-08-18 9:16 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-16 9:07 [PATCH v5 0/3] powerpc/perf: Add json file support for hv_24x7 core level events Kajol Jain
2020-08-16 9:07 ` [PATCH v5 1/3] perf jevents: Add support for parsing perchip/percore events Kajol Jain
2020-08-16 16:35 ` Andi Kleen
2020-08-18 9:16 ` kajoljain
2020-08-16 9:07 ` [PATCH v5 2/3] perf/tools: Pass pmu_event structure as a parameter for arch_get_runtimeparam Kajol Jain
2020-08-16 9:07 ` [PATCH v5 3/3] perf/tools/pmu_events/powerpc: Add hv_24x7 core level metric events Kajol Jain
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).