Re: FAILED: patch "[PATCH] perf tools: Dont stop PMU parsing on alias parse error" failed to apply to 3.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Andi, this one didn't work with cherry-pick, so if you want it in
3.14-stable, I need a backported version.

thanks,

greg k-h

On Sat, Apr 09, 2016 at 10:52:03AM -0700, gregkh@xxxxxxxxxxxxxxxxxxx wrote:
> 
> The patch below does not apply to the 3.14-stable tree.
> If someone wants it applied there, or to any other stable or longterm
> tree, then please email the backport, including the original git commit
> id to <stable@xxxxxxxxxxxxxxx>.
> 
> thanks,
> 
> greg k-h
> 
> ------------------ original commit in Linus's tree ------------------
> 
> >From 940db6dcd3f4659303fdf6befe7416adc4d24118 Mon Sep 17 00:00:00 2001
> From: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> Date: Wed, 17 Feb 2016 14:44:55 -0800
> Subject: [PATCH] perf tools: Dont stop PMU parsing on alias parse error
> 
> 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@xxxxxxxxxxxxxxx>
> Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx # v3.6+
> Link: http://lkml.kernel.org/r/1455749095-18358-1-git-send-email-andi@xxxxxxxxxxxxxx
> Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
> 
> diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
> index cf59fbaee491..ce61f79dbaae 100644
> --- a/tools/perf/util/pmu.c
> +++ b/tools/perf/util/pmu.c
> @@ -284,13 +284,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;
> @@ -306,17 +305,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;
> +		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;
>  }
>  
>  /*
> 
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]