aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@redhat.com>2014-01-03 13:03:26 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2014-01-13 08:06:21 -0500
commit3e2be2da8f76ef5b2e8e59c3dc8acd24640b4af4 (patch)
treef5a7e8de4af1303033c8a9ac131f9d0c7c267734
parent735f7e0bbebe755d707182188c4a5e88c581fc1c (diff)
perf record: Remove old evsel_list usage
To be consistent with other places, use just 'evlist' for the evsel list variable, and since we have it in 'struct record', use it directly from there. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-396bnfvmlxrsj3o2tk47b8t1@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/perf/builtin-record.c43
1 files changed, 19 insertions, 24 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index ea7c3060e8e7..6dcb8aae908c 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -324,7 +324,6 @@ out:
324 324
325static void record__init_features(struct record *rec) 325static void record__init_features(struct record *rec)
326{ 326{
327 struct perf_evlist *evsel_list = rec->evlist;
328 struct perf_session *session = rec->session; 327 struct perf_session *session = rec->session;
329 int feat; 328 int feat;
330 329
@@ -334,7 +333,7 @@ static void record__init_features(struct record *rec)
334 if (rec->no_buildid) 333 if (rec->no_buildid)
335 perf_header__clear_feat(&session->header, HEADER_BUILD_ID); 334 perf_header__clear_feat(&session->header, HEADER_BUILD_ID);
336 335
337 if (!have_tracepoints(&evsel_list->entries)) 336 if (!have_tracepoints(&rec->evlist->entries))
338 perf_header__clear_feat(&session->header, HEADER_TRACING_DATA); 337 perf_header__clear_feat(&session->header, HEADER_TRACING_DATA);
339 338
340 if (!rec->opts.branch_stack) 339 if (!rec->opts.branch_stack)
@@ -365,7 +364,6 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
365 struct machine *machine; 364 struct machine *machine;
366 struct perf_tool *tool = &rec->tool; 365 struct perf_tool *tool = &rec->tool;
367 struct record_opts *opts = &rec->opts; 366 struct record_opts *opts = &rec->opts;
368 struct perf_evlist *evsel_list = rec->evlist;
369 struct perf_data_file *file = &rec->file; 367 struct perf_data_file *file = &rec->file;
370 struct perf_session *session; 368 struct perf_session *session;
371 bool disabled = false; 369 bool disabled = false;
@@ -388,7 +386,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
388 record__init_features(rec); 386 record__init_features(rec);
389 387
390 if (forks) { 388 if (forks) {
391 err = perf_evlist__prepare_workload(evsel_list, &opts->target, 389 err = perf_evlist__prepare_workload(rec->evlist, &opts->target,
392 argv, file->is_pipe, 390 argv, file->is_pipe,
393 workload_exec_failed_signal); 391 workload_exec_failed_signal);
394 if (err < 0) { 392 if (err < 0) {
@@ -402,7 +400,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
402 goto out_delete_session; 400 goto out_delete_session;
403 } 401 }
404 402
405 if (!evsel_list->nr_groups) 403 if (!rec->evlist->nr_groups)
406 perf_header__clear_feat(&session->header, HEADER_GROUP_DESC); 404 perf_header__clear_feat(&session->header, HEADER_GROUP_DESC);
407 405
408 /* 406 /*
@@ -415,7 +413,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
415 if (err < 0) 413 if (err < 0)
416 goto out_delete_session; 414 goto out_delete_session;
417 } else { 415 } else {
418 err = perf_session__write_header(session, evsel_list, 416 err = perf_session__write_header(session, rec->evlist,
419 file->fd, false); 417 file->fd, false);
420 if (err < 0) 418 if (err < 0)
421 goto out_delete_session; 419 goto out_delete_session;
@@ -439,7 +437,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
439 goto out_delete_session; 437 goto out_delete_session;
440 } 438 }
441 439
442 if (have_tracepoints(&evsel_list->entries)) { 440 if (have_tracepoints(&rec->evlist->entries)) {
443 /* 441 /*
444 * FIXME err <= 0 here actually means that 442 * FIXME err <= 0 here actually means that
445 * there were no tracepoints so its not really 443 * there were no tracepoints so its not really
@@ -448,7 +446,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
448 * return this more properly and also 446 * return this more properly and also
449 * propagate errors that now are calling die() 447 * propagate errors that now are calling die()
450 */ 448 */
451 err = perf_event__synthesize_tracing_data(tool, file->fd, evsel_list, 449 err = perf_event__synthesize_tracing_data(tool, file->fd, rec->evlist,
452 process_synthesized_event); 450 process_synthesized_event);
453 if (err <= 0) { 451 if (err <= 0) {
454 pr_err("Couldn't record tracing data.\n"); 452 pr_err("Couldn't record tracing data.\n");
@@ -480,7 +478,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
480 perf_event__synthesize_guest_os, tool); 478 perf_event__synthesize_guest_os, tool);
481 } 479 }
482 480
483 err = __machine__synthesize_threads(machine, tool, &opts->target, evsel_list->threads, 481 err = __machine__synthesize_threads(machine, tool, &opts->target, rec->evlist->threads,
484 process_synthesized_event, opts->sample_address); 482 process_synthesized_event, opts->sample_address);
485 if (err != 0) 483 if (err != 0)
486 goto out_delete_session; 484 goto out_delete_session;
@@ -502,13 +500,13 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
502 * so don't spoil it by prematurely enabling them. 500 * so don't spoil it by prematurely enabling them.
503 */ 501 */
504 if (!target__none(&opts->target)) 502 if (!target__none(&opts->target))
505 perf_evlist__enable(evsel_list); 503 perf_evlist__enable(rec->evlist);
506 504
507 /* 505 /*
508 * Let the child rip 506 * Let the child rip
509 */ 507 */
510 if (forks) 508 if (forks)
511 perf_evlist__start_workload(evsel_list); 509 perf_evlist__start_workload(rec->evlist);
512 510
513 for (;;) { 511 for (;;) {
514 int hits = rec->samples; 512 int hits = rec->samples;
@@ -521,7 +519,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
521 if (hits == rec->samples) { 519 if (hits == rec->samples) {
522 if (done) 520 if (done)
523 break; 521 break;
524 err = poll(evsel_list->pollfd, evsel_list->nr_fds, -1); 522 err = poll(rec->evlist->pollfd, rec->evlist->nr_fds, -1);
525 waking++; 523 waking++;
526 } 524 }
527 525
@@ -531,7 +529,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
531 * disable events in this case. 529 * disable events in this case.
532 */ 530 */
533 if (done && !disabled && !target__none(&opts->target)) { 531 if (done && !disabled && !target__none(&opts->target)) {
534 perf_evlist__disable(evsel_list); 532 perf_evlist__disable(rec->evlist);
535 disabled = true; 533 disabled = true;
536 } 534 }
537 } 535 }
@@ -901,16 +899,13 @@ const struct option record_options[] = {
901int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused) 899int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
902{ 900{
903 int err = -ENOMEM; 901 int err = -ENOMEM;
904 struct perf_evlist *evsel_list;
905 struct record *rec = &record; 902 struct record *rec = &record;
906 char errbuf[BUFSIZ]; 903 char errbuf[BUFSIZ];
907 904
908 evsel_list = perf_evlist__new(); 905 rec->evlist = perf_evlist__new();
909 if (evsel_list == NULL) 906 if (rec->evlist == NULL)
910 return -ENOMEM; 907 return -ENOMEM;
911 908
912 rec->evlist = evsel_list;
913
914 argc = parse_options(argc, argv, record_options, record_usage, 909 argc = parse_options(argc, argv, record_options, record_usage,
915 PARSE_OPT_STOP_AT_NON_OPTION); 910 PARSE_OPT_STOP_AT_NON_OPTION);
916 if (!argc && target__none(&rec->opts.target)) 911 if (!argc && target__none(&rec->opts.target))
@@ -937,8 +932,8 @@ int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
937 if (rec->no_buildid_cache || rec->no_buildid) 932 if (rec->no_buildid_cache || rec->no_buildid)
938 disable_buildid_cache(); 933 disable_buildid_cache();
939 934
940 if (evsel_list->nr_entries == 0 && 935 if (rec->evlist->nr_entries == 0 &&
941 perf_evlist__add_default(evsel_list) < 0) { 936 perf_evlist__add_default(rec->evlist) < 0) {
942 pr_err("Not enough memory for event selector list\n"); 937 pr_err("Not enough memory for event selector list\n");
943 goto out_symbol_exit; 938 goto out_symbol_exit;
944 } 939 }
@@ -964,7 +959,7 @@ int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
964 } 959 }
965 960
966 err = -ENOMEM; 961 err = -ENOMEM;
967 if (perf_evlist__create_maps(evsel_list, &rec->opts.target) < 0) 962 if (perf_evlist__create_maps(rec->evlist, &rec->opts.target) < 0)
968 usage_with_options(record_usage, record_options); 963 usage_with_options(record_usage, record_options);
969 964
970 if (record_opts__config(&rec->opts)) { 965 if (record_opts__config(&rec->opts)) {
@@ -974,10 +969,10 @@ int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused)
974 969
975 err = __cmd_record(&record, argc, argv); 970 err = __cmd_record(&record, argc, argv);
976 971
977 perf_evlist__munmap(evsel_list); 972 perf_evlist__munmap(rec->evlist);
978 perf_evlist__close(evsel_list); 973 perf_evlist__close(rec->evlist);
979out_free_fd: 974out_free_fd:
980 perf_evlist__delete_maps(evsel_list); 975 perf_evlist__delete_maps(rec->evlist);
981out_symbol_exit: 976out_symbol_exit:
982 symbol__exit(); 977 symbol__exit();
983 return err; 978 return err;