Thread (9 messages) 9 messages, 4 authors, 2021-08-13

Re: [PATCH v4 1/2] perf pmu: Add PMU alias support

From: Jin, Yao <hidden>
Date: 2021-08-12 04:33:01
Also in: lkml

Hi Jiri,

On 8/12/2021 3:23 AM, Jiri Olsa wrote:
On Wed, Aug 11, 2021 at 10:48:26AM +0800, Jin Yao wrote:

SNIP
quoted
  				if (!parse_events_add_pmu(_parse_state, list, pmu->name, terms, true, false))
diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index fc683bc41715..796a4be752f4 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -946,6 +946,18 @@ perf_pmu__get_default_config(struct perf_pmu *pmu __maybe_unused)
  	return NULL;
  }
  
+char * __weak
+pmu_find_real_name(const char *name)
+{
+	return strdup(name);
+}
hm, why does this need to return already strdup? it forces you
to add all those goto below.. could just return name and keep
the 'pmu->name = strdup(name);' below?

that should make the change simpler

jirka
In x86 specific __pmu_find_real_name,

static char *__pmu_find_real_name(const char *name)
{
	struct perf_pmu_alias_name *pmu;

	list_for_each_entry(pmu, &pmu_alias_name_list, list) {
		if (!strcmp(name, pmu->alias))
			return strdup(pmu->name);
	}

	return strdup(name);
}

We have returned with strdup(name).

OK, I will change the code to:

static char *__pmu_find_real_name(const char *name)
{
	struct perf_pmu_alias_name *pmu;

	list_for_each_entry(pmu, &pmu_alias_name_list, list) {
		if (!strcmp(name, pmu->alias))
			return pmu->name;
	}

	return name;
}

And keep 'pmu->name = strdup(name);' in pmu_lookup().

Thanks
Jin Yao
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help