Browse code

Bug:1677159 -fix linux perf tool segmentation fault

Change-Id: I95048ef6803f30db83ecb9dbdea16eee5b733424
Reviewed-on: http://photon-jenkins.eng.vmware.com/1103
Tested-by: jenkins-photon <wangnan2015@hotmail.com>
Reviewed-by: Sharath George
(cherry picked from commit 6f1e83f36f73b41043c2b21f8b9e4dc9cff42751)
Reviewed-on: http://photon-jenkins.eng.vmware.com/1109
Reviewed-by: suezzelur <anishs@vmware.com>

harishspqr authored on 2016/06/21 07:32:24
Showing 2 changed files
... ...
@@ -1,13 +1,14 @@
1 1
 Summary:      This package contains the 'perf' performance analysis tools for Linux kernel 
2 2
 Name:         linux-tools
3 3
 Version:      4.4.8
4
-Release:      2%{?dist}
4
+Release:      3%{?dist}
5 5
 License:      GPLv2
6 6
 URL:          http://www.kernel.org/
7 7
 Group:        System/Tools
8 8
 Vendor:       VMware, Inc.
9 9
 Distribution: Photon
10 10
 Source0:      http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.8.tar.xz
11
+Patch0:		  perf-top-sigsegv-fix.patch
11 12
 %define sha1 linux=78df847edacc6c01cb4dcc89a2b96822d7e8d1e1
12 13
 Requires:         filesystem kmod coreutils binutils
13 14
 
... ...
@@ -16,6 +17,7 @@ This package contains the 'perf' performance analysis tools for Linux kernel.
16 16
 
17 17
 %prep
18 18
 %setup -q -n linux-4.4.8
19
+%patch0 -p1
19 20
 
20 21
 %build
21 22
 cd tools/perf
... ...
@@ -36,6 +38,8 @@ mv %{buildroot}/usr/lib64 %{buildroot}%{_libdir}
36 36
 /etc/bash_completion.d/* 
37 37
 
38 38
 %changelog
39
+*	Mon Jun 20 2016 Harish Udaiya Kumar <hudaiyakumar@vmware.com> 4.4.8-3
40
+-	Added patch to fix perf top segmentation fault. 
39 41
 *	Tue May 24 2016 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 4.4.8-2
40 42
 -	GA - Bump release of all rpms
41 43
 *   Thu Apr 28 2016 Alexey Makhalov <amakhalov@vmware.com> 4.4.8-1
42 44
new file mode 100644
... ...
@@ -0,0 +1,11 @@
0
+--- a/tools/perf/builtin-top.c	2016-04-19 23:44:02.000000000 -0700
1
+@@ -766,7 +766,7 @@
2
+ 		 */
3
+ 		if (!top->kptr_restrict_warned && !top->vmlinux_warned &&
4
+ 		    al.map == machine->vmlinux_maps[MAP__FUNCTION] &&
5
+-		    RB_EMPTY_ROOT(&al.map->dso->symbols[MAP__FUNCTION])) {
6
++		    (al.map != NULL && RB_EMPTY_ROOT(&al.map->dso->symbols[MAP__FUNCTION]))) {
7
+ 			if (symbol_conf.vmlinux_name) {
8
+ 				char serr[256];
9
+ 				dso__strerror_load(al.map->dso, serr, sizeof(serr));