mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 05:32:00 +00:00
perf tools fixes for v6.7: 2nd batch
A random set of small bug fixes including: * Fix segfault on AmpereOne due to missing default metricgroup name. * Fix segfault on `perf list --json` due to NULL pointer. Signed-off-by: Namhyung Kim <namhyung@kernel.org> -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQSo2x5BnqMqsoHtzsmMstVUGiXMgwUCZXOIeAAKCRCMstVUGiXM g98/AP9XDmXoOJafRySAz3fCNt25YUMjjsSvtF6/gHK5VgRDmQEAkUjd97BilDfW UHWZ6IpYRZHchJ8kwGBYg9BDM8WTtwI= =NQQF -----END PGP SIGNATURE----- Merge tag 'perf-tools-fixes-for-v6.7-2-2023-12-08' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools Pull perf tools fixes from Namhyung Kim: "A random set of small bug fixes including: - Fix segfault on AmpereOne due to missing default metricgroup name - Fix segfault on `perf list --json` due to NULL pointer" * tag 'perf-tools-fixes-for-v6.7-2-2023-12-08' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: perf list: Fix JSON segfault by setting the used skip_duplicate_pmus callback perf vendor events arm64: AmpereOne: Add missing DefaultMetricgroupName fields perf metrics: Avoid segv if default metricgroup isn't set
This commit is contained in:
commit
9d3bc457a2
@ -434,6 +434,11 @@ static void json_print_metric(void *ps __maybe_unused, const char *group,
|
||||
strbuf_release(&buf);
|
||||
}
|
||||
|
||||
static bool json_skip_duplicate_pmus(void *ps __maybe_unused)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool default_skip_duplicate_pmus(void *ps)
|
||||
{
|
||||
struct print_state *print_state = ps;
|
||||
@ -503,6 +508,7 @@ int cmd_list(int argc, const char **argv)
|
||||
.print_end = json_print_end,
|
||||
.print_event = json_print_event,
|
||||
.print_metric = json_print_metric,
|
||||
.skip_duplicate_pmus = json_skip_duplicate_pmus,
|
||||
};
|
||||
ps = &json_ps;
|
||||
} else {
|
||||
|
@ -231,6 +231,7 @@
|
||||
"MetricName": "slots_lost_misspeculation_fraction",
|
||||
"MetricExpr": "100 * ((OP_SPEC - OP_RETIRED) / (CPU_CYCLES * #slots))",
|
||||
"BriefDescription": "Fraction of slots lost due to misspeculation",
|
||||
"DefaultMetricgroupName": "TopdownL1",
|
||||
"MetricGroup": "Default;TopdownL1",
|
||||
"ScaleUnit": "1percent of slots"
|
||||
},
|
||||
@ -238,6 +239,7 @@
|
||||
"MetricName": "retired_fraction",
|
||||
"MetricExpr": "100 * (OP_RETIRED / (CPU_CYCLES * #slots))",
|
||||
"BriefDescription": "Fraction of slots retiring, useful work",
|
||||
"DefaultMetricgroupName": "TopdownL1",
|
||||
"MetricGroup": "Default;TopdownL1",
|
||||
"ScaleUnit": "1percent of slots"
|
||||
},
|
||||
|
@ -225,7 +225,7 @@ static struct metric *metric__new(const struct pmu_metric *pm,
|
||||
|
||||
m->pmu = pm->pmu ?: "cpu";
|
||||
m->metric_name = pm->metric_name;
|
||||
m->default_metricgroup_name = pm->default_metricgroup_name;
|
||||
m->default_metricgroup_name = pm->default_metricgroup_name ?: "";
|
||||
m->modifier = NULL;
|
||||
if (modifier) {
|
||||
m->modifier = strdup(modifier);
|
||||
|
Loading…
Reference in New Issue
Block a user