aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/tests
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2016-09-01 09:40:57 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2016-09-01 11:42:23 -0400
commit54da07695a0c11b342815be0d8f1796c88765bde (patch)
tree3114a5b2f53f6abac35ea161fb55667bc1390a4f /tools/perf/tests
parente267769ed4d22144d317d934cbce382cc7a8cca0 (diff)
perf test vmlinux: Avoid printing headers for empty lists
Before: # perf test -F -v 1 1: vmlinux symtab matches kallsyms: --- start --- <SNIP> WARN: Maps only in vmlinux: ffffffffb7d7d000-ffffffffb7eeaac8 117d000 [kernel].init.text ffffffffb7eeaac8-ffffffffc03ad000 12eaac8 [kernel].exit.text WARN: Maps in vmlinux with a different name in kallsyms: WARN: Maps only in kallsyms: ---- end ---- vmlinux symtab matches kallsyms: Ok # The two last WARN lines are now suppressed, since there are no such cases detected. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/n/tip-9ww8uvzl682ykaw8ht1tozlr@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/tests')
-rw-r--r--tools/perf/tests/vmlinux-kallsyms.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/tools/perf/tests/vmlinux-kallsyms.c b/tools/perf/tests/vmlinux-kallsyms.c
index 6bd5bf980de2..450f69960931 100644
--- a/tools/perf/tests/vmlinux-kallsyms.c
+++ b/tools/perf/tests/vmlinux-kallsyms.c
@@ -28,6 +28,7 @@ int test__vmlinux_matches_kallsyms(int subtest __maybe_unused)
28 enum map_type type = MAP__FUNCTION; 28 enum map_type type = MAP__FUNCTION;
29 struct maps *maps = &vmlinux.kmaps.maps[type]; 29 struct maps *maps = &vmlinux.kmaps.maps[type];
30 u64 mem_start, mem_end; 30 u64 mem_start, mem_end;
31 bool header_printed;
31 32
32 /* 33 /*
33 * Step 1: 34 * Step 1:
@@ -178,7 +179,7 @@ next_pair:
178 if (!verbose) 179 if (!verbose)
179 goto out; 180 goto out;
180 181
181 pr_info("WARN: Maps only in vmlinux:\n"); 182 header_printed = false;
182 183
183 for (map = maps__first(maps); map; map = map__next(map)) { 184 for (map = maps__first(maps); map; map = map__next(map)) {
184 struct map * 185 struct map *
@@ -192,13 +193,18 @@ next_pair:
192 (map->dso->kernel ? 193 (map->dso->kernel ?
193 map->dso->short_name : 194 map->dso->short_name :
194 map->dso->name)); 195 map->dso->name));
195 if (pair) 196 if (pair) {
196 pair->priv = 1; 197 pair->priv = 1;
197 else 198 } else {
199 if (!header_printed) {
200 pr_info("WARN: Maps only in vmlinux:\n");
201 header_printed = true;
202 }
198 map__fprintf(map, stderr); 203 map__fprintf(map, stderr);
204 }
199 } 205 }
200 206
201 pr_info("WARN: Maps in vmlinux with a different name in kallsyms:\n"); 207 header_printed = false;
202 208
203 for (map = maps__first(maps); map; map = map__next(map)) { 209 for (map = maps__first(maps); map; map = map__next(map)) {
204 struct map *pair; 210 struct map *pair;
@@ -211,7 +217,11 @@ next_pair:
211 continue; 217 continue;
212 218
213 if (pair->start == mem_start) { 219 if (pair->start == mem_start) {
214 pair->priv = 1; 220 if (!header_printed) {
221 pr_info("WARN: Maps in vmlinux with a different name in kallsyms:\n");
222 header_printed = true;
223 }
224
215 pr_info("WARN: %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as", 225 pr_info("WARN: %" PRIx64 "-%" PRIx64 " %" PRIx64 " %s in kallsyms as",
216 map->start, map->end, map->pgoff, map->dso->name); 226 map->start, map->end, map->pgoff, map->dso->name);
217 if (mem_end != pair->end) 227 if (mem_end != pair->end)
@@ -222,13 +232,18 @@ next_pair:
222 } 232 }
223 } 233 }
224 234
225 pr_info("WARN: Maps only in kallsyms:\n"); 235 header_printed = false;
226 236
227 maps = &kallsyms.kmaps.maps[type]; 237 maps = &kallsyms.kmaps.maps[type];
228 238
229 for (map = maps__first(maps); map; map = map__next(map)) { 239 for (map = maps__first(maps); map; map = map__next(map)) {
230 if (!map->priv) 240 if (!map->priv) {
241 if (!header_printed) {
242 pr_info("WARN: Maps only in kallsyms:\n");
243 header_printed = true;
244 }
231 map__fprintf(map, stderr); 245 map__fprintf(map, stderr);
246 }
232 } 247 }
233out: 248out:
234 machine__exit(&kallsyms); 249 machine__exit(&kallsyms);