diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2014-01-03 13:03:26 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2014-01-13 08:06:21 -0500 |
commit | 3e2be2da8f76ef5b2e8e59c3dc8acd24640b4af4 (patch) | |
tree | f5a7e8de4af1303033c8a9ac131f9d0c7c267734 | |
parent | 735f7e0bbebe755d707182188c4a5e88c581fc1c (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.c | 43 |
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 | ||
325 | static void record__init_features(struct record *rec) | 325 | static 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[] = { | |||
901 | int cmd_record(int argc, const char **argv, const char *prefix __maybe_unused) | 899 | int 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); |
979 | out_free_fd: | 974 | out_free_fd: |
980 | perf_evlist__delete_maps(evsel_list); | 975 | perf_evlist__delete_maps(rec->evlist); |
981 | out_symbol_exit: | 976 | out_symbol_exit: |
982 | symbol__exit(); | 977 | symbol__exit(); |
983 | return err; | 978 | return err; |