Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'perf-urgent-for-mingo-5.5-20191223' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent

Pull perf/urgent fixes from Arnaldo Carvalho de Melo:

perf report/top:

Arnaldo Carvalho de Melo:

- Fix popup menu for entries in main kernel maps other than the main one,
e.g. ".init.text", where a non-initialized pointer was causing segfaults.

Jin Yao:

- Fix incorrectly added dimensions when switching perf.data file to another
via the popup menu.

libtraceevent:

Hewenliang:

- Fix memory leakage in filter_event().

perf hists:

Yuya Fujita:

- Fix variable name's inconsistency in hists__for_each() macro.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>

+12 -4
+3 -1
tools/lib/traceevent/parse-filter.c
··· 1228 1228 } 1229 1229 1230 1230 filter_type = add_filter_type(filter, event->id); 1231 - if (filter_type == NULL) 1231 + if (filter_type == NULL) { 1232 + free_arg(arg); 1232 1233 return TEP_ERRNO__MEM_ALLOC_FAILED; 1234 + } 1233 1235 1234 1236 if (filter_type->filter) 1235 1237 free_arg(filter_type->filter);
+4 -1
tools/perf/builtin-report.c
··· 1076 1076 struct stat st; 1077 1077 bool has_br_stack = false; 1078 1078 int branch_mode = -1; 1079 + int last_key = 0; 1079 1080 bool branch_call_mode = false; 1080 1081 #define CALLCHAIN_DEFAULT_OPT "graph,0.5,caller,function,percent" 1081 1082 static const char report_callchain_help[] = "Display call graph (stack chain/backtrace):\n\n" ··· 1451 1450 sort_order = sort_tmp; 1452 1451 } 1453 1452 1454 - if (setup_sorting(session->evlist) < 0) { 1453 + if ((last_key != K_SWITCH_INPUT_DATA) && 1454 + (setup_sorting(session->evlist) < 0)) { 1455 1455 if (sort_order) 1456 1456 parse_options_usage(report_usage, options, "s", 1); 1457 1457 if (field_order) ··· 1532 1530 ret = __cmd_report(&report); 1533 1531 if (ret == K_SWITCH_INPUT_DATA) { 1534 1532 perf_session__delete(session); 1533 + last_key = K_SWITCH_INPUT_DATA; 1535 1534 goto repeat; 1536 1535 } else 1537 1536 ret = 0;
+2 -2
tools/perf/util/hist.h
··· 339 339 list_for_each_entry_safe(format, tmp, &(_list)->sorts, sort_list) 340 340 341 341 #define hists__for_each_format(hists, format) \ 342 - perf_hpp_list__for_each_format((hists)->hpp_list, fmt) 342 + perf_hpp_list__for_each_format((hists)->hpp_list, format) 343 343 344 344 #define hists__for_each_sort_list(hists, format) \ 345 - perf_hpp_list__for_each_sort_list((hists)->hpp_list, fmt) 345 + perf_hpp_list__for_each_sort_list((hists)->hpp_list, format) 346 346 347 347 extern struct perf_hpp_fmt perf_hpp__format[]; 348 348
+3
tools/perf/util/symbol-elf.c
··· 920 920 if (curr_map == NULL) 921 921 return -1; 922 922 923 + if (curr_dso->kernel) 924 + map__kmap(curr_map)->kmaps = kmaps; 925 + 923 926 if (adjust_kernel_syms) { 924 927 curr_map->start = shdr->sh_addr + ref_reloc(kmap); 925 928 curr_map->end = curr_map->start + shdr->sh_size;