Skip to contentSkip to conversation

Patch "perf test: Ignore kcore files in the "vmlinux matches kallsyms" test" has been added to the 4.4-stable tree

PATCH [email protected] 2 participants 3 messages Aug 2, 2016 – Aug 8, 2016

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

perf test: Ignore kcore files in the "vmlinux matches kallsyms" test

to the 4.4-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-test-ignore-kcore-files-in-the-vmlinux-matches-kallsyms-test.patch
and it can be found in the queue-4.4 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 53d0fe68275dbdaf6a532bb4e87f00db5d36c140 Mon Sep 17 00:00:00 2001

From: Arnaldo Carvalho de Melo <[email protected]>
Date: Tue, 19 Apr 2016 12:16:55 -0300
Subject: perf test: Ignore kcore files in the "vmlinux matches kallsyms" test

From: Arnaldo Carvalho de Melo <[email protected]>

commit 53d0fe68275dbdaf6a532bb4e87f00db5d36c140 upstream.

Before:

  # perf test -v kallsyms
<SNIP>
  Maps only in vmlinux:
   ffffffff81d5e000-ffffffff81ec3ac8 115e000 [kernel].init.text
   ffffffff81ec3ac8-ffffffffa0000000 12c3ac8 [kernel].exit.text
   ffffffffa0000000-ffffffffa000c000 0 [fjes]
   ffffffffa000c000-ffffffffa0017000 0 [video]
   ffffffffa0017000-ffffffffa001c000 0 [grace]
<SNIP>
   ffffffffa0a7f000-ffffffffa0ba5000 0 [xfs]
   ffffffffa0ba5000-ffffffffffffffff 0 [veth]
  Maps in vmlinux with a different name in kallsyms:
  Maps only in kallsyms:
   ffff880000100000-ffff88001000b000 80000103000 [kernel.kallsyms]
   ffff88001000b000-ffff880100000000 8001000e000 [kernel.kallsyms]
   ffff880100000000-ffffc90000000000 80100003000 [kernel.kallsyms]
<SNIP>
   ffffffffa0000000-ffffffffff600000 7fffa0003000 [kernel.kallsyms]
   ffffffffff600000-ffffffffffffffff 7fffff603000 [kernel.kallsyms]
  test child finished with -1
  ---- end ----
  vmlinux symtab matches kallsyms: FAILED!
  #

After:

  # perf test -v 1
   1: vmlinux symtab matches kallsyms                          :
  --- start ---
  test child forked, pid 7058
  Looking at the vmlinux_path (8 entries long)
  Using /lib/modules/4.6.0-rc1+/build/vmlinux for symbols
  0xffffffff81076870: diff end addr for aesni_gcm_dec v: 0xffffffff810791f2 k: 0xffffffff81076902
  0xffffffff81079200: diff end addr for aesni_gcm_enc v: 0xffffffff8107bb03 k: 0xffffffff81079292
  0xffffffff8107e8d0: diff end addr for aesni_gcm_enc_avx_gen2 v: 0xffffffff81083e76 k: 0xffffffff8107e943
  0xffffffff81083e80: diff end addr for aesni_gcm_dec_avx_gen2 v: 0xffffffff81089611 k: 0xffffffff81083ef3
  0xffffffff81089990: diff end addr for aesni_gcm_enc_avx_gen4 v: 0xffffffff8108e7c4 k: 0xffffffff81089a03
  0xffffffff8108e7d0: diff end addr for aesni_gcm_dec_avx_gen4 v: 0xffffffff810937ef k: 0xffffffff8108e843
  Maps only in vmlinux:
   ffffffff81d5e000-ffffffff81ec3ac8 115e000 [kernel].init.text
   ffffffff81ec3ac8-ffffffffa0000000 12c3ac8 [kernel].exit.text
  Maps in vmlinux with a different name in kallsyms:
  Maps only in kallsyms:
  test child finished with -1
  ---- end ----
 vmlinux symtab matches kallsyms: FAILED!
  #
Cc Adrian Hunter <[email protected]>
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Namhyung Kim <[email protected]>
Cc Wang Nan <[email protected]>
Fixes 8e0cf965f95e ("perf symbols: Add support for reading from /proc/kcore")
---
 tools/perf/tests/vmlinux-kallsyms.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)
tools/perf/tests/vmlinux-kallsyms.c +7 -1
@@ -54,8 +54,14 @@ int test__vmlinux_matches_kallsyms(void)
 	 * Step 3:
 	 *
 	 * Load and split /proc/kallsyms into multiple maps, one per module.
+	 * Do not use kcore, as this test was designed before kcore support
+	 * and has parts that only make sense if using the non-kcore code.
+	 * XXX: extend it to stress the kcorre code as well, hint: the list
+	 * of modules extracted from /proc/kcore, in its current form, can't
+	 * be compacted against the list of modules found in the "vmlinux"
+	 * code and with the one got from /proc/modules from the "kallsyms" code.
 	 */
-	if (machine__load_kallsyms(&kallsyms, "/proc/kallsyms", type, NULL) <= 0) {
+	if (__machine__load_kallsyms(&kallsyms, "/proc/kallsyms", type, true, NULL) <= 0) {
 		pr_debug("dso__load_kallsyms ");
 		goto out;
 	}

Patches currently in stable-queue which might be from [email protected] are

queue-4.4/perf-test-ignore-kcore-files-in-the-vmlinux-matches-kallsyms-test.patch

#1 lore raw
Quoted 7 lines · On 08/02/2016, 09:03 AM, [email protected] wrote:

From: Arnaldo Carvalho de Melo <[email protected]>
Date: Tue, 19 Apr 2016 12:16:55 -0300
Subject: perf test: Ignore kcore files in the "vmlinux matches kallsyms" test

From: Arnaldo Carvalho de Melo <[email protected]>

commit 53d0fe68275dbdaf6a532bb4e87f00db5d36c140 upstream.

...

Quoted 5 lines
tools/perf/tests/vmlinux-kallsyms.c +0 -0
@@ -54,8 +54,14 @@ int test__vmlinux_matches_kallsyms(void)
 	 * Step 3:
 	 *

tools/perf/tests/vmlinux-kallsyms.c int test__vmlinux_matches_kallsyms(void) · line 64

Quoted 10 lines
tools/perf/tests/vmlinux-kallsyms.c +7 -1
 	 * Load and split /proc/kallsyms into multiple maps, one per module.
+	 * Do not use kcore, as this test was designed before kcore support
+	 * and has parts that only make sense if using the non-kcore code.
+	 * XXX: extend it to stress the kcorre code as well, hint: the list
+	 * of modules extracted from /proc/kcore, in its current form, can't
+	 * be compacted against the list of modules found in the "vmlinux"
+	 * code and with the one got from /proc/modules from the "kallsyms" code.
 	 */
-	if (machine__load_kallsyms(&kallsyms, "/proc/kallsyms", type, NULL) <= 0) {
+	if (__machine__load_kallsyms(&kallsyms, "/proc/kallsyms", type, true, NULL) <= 0) {

__machine__load_kallsyms is only in 4.7+. So this patch breaks build of perf:
perf-in.o: In function `test__vmlinux_matches_kallsyms':
tools/perf/tests/vmlinux-kallsyms.c:64: undefined reference to `__machine__load_kallsyms'
collect2: error: ld returned 1 exit status Makefile.perf:316: recipe for target 'perf' failed

It is only a test fix, so I think the patch should be dropped from both 4.4 and 4.6.

thanks,

Signature · 2 lines
js
suse labs
author maintainer
#2 lore raw
Quoted 33 lines · Jiri Slaby
Quoted 7 lines · On 08/02/2016, 09:03 AM, [email protected] wrote:

From: Arnaldo Carvalho de Melo <[email protected]>
Date: Tue, 19 Apr 2016 12:16:55 -0300
Subject: perf test: Ignore kcore files in the "vmlinux matches kallsyms" test

From: Arnaldo Carvalho de Melo <[email protected]>

commit 53d0fe68275dbdaf6a532bb4e87f00db5d36c140 upstream.

...

Quoted 5 lines
tools/perf/tests/vmlinux-kallsyms.c +0 -0
@@ -54,8 +54,14 @@ int test__vmlinux_matches_kallsyms(void)
 	 * Step 3:
 	 *

tools/perf/tests/vmlinux-kallsyms.c int test__vmlinux_matches_kallsyms(void) · line 64

Quoted 10 lines
tools/perf/tests/vmlinux-kallsyms.c +7 -1
 	 * Load and split /proc/kallsyms into multiple maps, one per module.
+	 * Do not use kcore, as this test was designed before kcore support
+	 * and has parts that only make sense if using the non-kcore code.
+	 * XXX: extend it to stress the kcorre code as well, hint: the list
+	 * of modules extracted from /proc/kcore, in its current form, can't
+	 * be compacted against the list of modules found in the "vmlinux"
+	 * code and with the one got from /proc/modules from the "kallsyms" code.
 	 */
-	if (machine__load_kallsyms(&kallsyms, "/proc/kallsyms", type, NULL) <= 0) {
+	if (__machine__load_kallsyms(&kallsyms, "/proc/kallsyms", type, true, NULL) <= 0) {

__machine__load_kallsyms is only in 4.7+. So this patch breaks build of perf:
perf-in.o: In function `test__vmlinux_matches_kallsyms':
tools/perf/tests/vmlinux-kallsyms.c:64: undefined reference to `__machine__load_kallsyms'
collect2: error: ld returned 1 exit status Makefile.perf:316: recipe for target 'perf' failed

Quoted 2 lines

It is only a test fix, so I think the patch should be dropped from both 4.4 and 4.6.

Yeah, I got another report of this over the weekend, I've now dropped this patch, sorry about that.

greg k-h