Patch "perf tools: Dont stop PMU parsing on alias parse error" has been added to the 4.5-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
perf tools: Dont stop PMU parsing on alias parse error
to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
perf-tools-dont-stop-pmu-parsing-on-alias-parse-error.patch
and it can be found in the queue-4.5 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
940db6dcd3f4659303fdf6befe7416adc4d24118Mon Sep 17 00:00:00 2001
From: Andi Kleen <[email protected]>
Date: Wed, 17 Feb 2016 14:44:55 -0800
Subject: perf tools: Dont stop PMU parsing on alias parse error
From: Andi Kleen <[email protected]>
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
--- tools/perf/util/pmu.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-)
tools/perf/util/pmu.c +8 -7
@@ -284,13 +284,12 @@ static int pmu_aliases_parse(char *dir, {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;
@@ -306,17 +305,19 @@ static int pmu_aliases_parse(char *dir,snprintf (path,PATH_MAX ,"%s/%s" , dir, name); - ret = -EINVAL ; file =fopen (path,"r" ); -if (!file) -break ; +if (!file) { +pr_debug ("Cannot open %s\n" , path); +continue ; + } - ret =perf_pmu__new_alias (head, dir, name, file); +if (perf_pmu__new_alias (head, dir, name, file) <0 ) +pr_debug ("Cannot set up %s\n" , name);fclose (file); }closedir (event_dir); -return ret; +return 0 ; }/*
Patches currently in stable-queue which might be from [email protected] are
queue-4.5/perf-tools-dont-stop-pmu-parsing-on-alias-parse-error.patch queue-4.5/x86-pci-mark-broadwell-ep-home-agent-pcu-as-having-non-compliant-bars.patch queue-4.5/pci-disable-io-mem-decoding-for-devices-with-non-compliant-bars.patch