diff mbox

[3.13.y-ckt,stable] Patch "perf tools: Dont stop PMU parsing on alias parse error" has been added to the 3.13.y-ckt tree

Message ID 1459812027-29106-1-git-send-email-kamal@canonical.com
State New
Headers show

Commit Message

Kamal Mostafa April 4, 2016, 11:20 p.m. UTC
This is a note to let you know that I have just added a patch titled

    perf tools: Dont stop PMU parsing on alias parse error

to the linux-3.13.y-queue branch of the 3.13.y-ckt extended stable tree 
which can be found at:

    http://kernel.ubuntu.com/git/ubuntu/linux.git/log/?h=linux-3.13.y-queue

This patch is scheduled to be released in version 3.13.11-ckt38.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.13.y-ckt tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Kamal

---8<------------------------------------------------------------

From faa7001c7de1a6230ddf4f8d5e6f767c938e7472 Mon Sep 17 00:00:00 2001
From: Andi Kleen <ak@linux.intel.com>
Date: Wed, 17 Feb 2016 14:44:55 -0800
Subject: perf tools: Dont stop PMU parsing on alias parse error

commit 940db6dcd3f4659303fdf6befe7416adc4d24118 upstream.

When an error happens during alias parsing currently the complete
parsing of all attributes of the PMU is stopped. This is breaks old perf
on a newer kernel that may have not-yet-know alias attributes (such as
.scale or .per-pkg).

Continue when some attribute is unparseable.

This is IMHO a stable candidate and should be backported to older
versions to avoid problems with newer kernels.

v2: Print warnings when something goes wrong.
v3: Change warning to debug output

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/1455749095-18358-1-git-send-email-andi@firstfloor.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
[ kamal: backport to 3.13-stable: context ]
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
---
 tools/perf/util/pmu.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

--
2.7.4
diff mbox

Patch

diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index c232d8d..2febc09 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -129,13 +129,12 @@  static int pmu_aliases_parse(char *dir, struct list_head *head)
 {
 	struct dirent *evt_ent;
 	DIR *event_dir;
-	int ret = 0;

 	event_dir = opendir(dir);
 	if (!event_dir)
 		return -EINVAL;

-	while (!ret && (evt_ent = readdir(event_dir))) {
+	while ((evt_ent = readdir(event_dir))) {
 		char path[PATH_MAX];
 		char *name = evt_ent->d_name;
 		FILE *file;
@@ -145,16 +144,19 @@  static int pmu_aliases_parse(char *dir, struct list_head *head)

 		snprintf(path, PATH_MAX, "%s/%s", dir, name);

-		ret = -EINVAL;
 		file = fopen(path, "r");
-		if (!file)
-			break;
-		ret = perf_pmu__new_alias(head, name, file);
+		if (!file) {
+			pr_debug("Cannot open %s\n", path);
+			continue;
+		}
+
+		if (perf_pmu__new_alias(head, name, file) < 0)
+			pr_debug("Cannot set up %s\n", name);
 		fclose(file);
 	}

 	closedir(event_dir);
-	return ret;
+	return 0;
 }

 /*