diff options
Diffstat (limited to 'tools/perf/builtin-script.c')
-rw-r--r-- | tools/perf/builtin-script.c | 39 |
1 files changed, 8 insertions, 31 deletions
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index 2d8cb1d1682c..53f78cf3113f 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c | |||
@@ -3699,37 +3699,13 @@ int cmd_script(int argc, const char **argv) | |||
3699 | if (err < 0) | 3699 | if (err < 0) |
3700 | goto out_delete; | 3700 | goto out_delete; |
3701 | 3701 | ||
3702 | script.ptime_range = perf_time__range_alloc(script.time_str, | 3702 | if (script.time_str) { |
3703 | &script.range_size); | 3703 | err = perf_time__parse_for_ranges(script.time_str, session, |
3704 | if (!script.ptime_range) { | 3704 | &script.ptime_range, |
3705 | err = -ENOMEM; | 3705 | &script.range_size, |
3706 | goto out_delete; | 3706 | &script.range_num); |
3707 | } | 3707 | if (err < 0) |
3708 | |||
3709 | /* needs to be parsed after looking up reference time */ | ||
3710 | if (perf_time__parse_str(script.ptime_range, script.time_str) != 0) { | ||
3711 | if (session->evlist->first_sample_time == 0 && | ||
3712 | session->evlist->last_sample_time == 0) { | ||
3713 | pr_err("HINT: no first/last sample time found in perf data.\n" | ||
3714 | "Please use latest perf binary to execute 'perf record'\n" | ||
3715 | "(if '--buildid-all' is enabled, please set '--timestamp-boundary').\n"); | ||
3716 | err = -EINVAL; | ||
3717 | goto out_delete; | ||
3718 | } | ||
3719 | |||
3720 | script.range_num = perf_time__percent_parse_str( | ||
3721 | script.ptime_range, script.range_size, | ||
3722 | script.time_str, | ||
3723 | session->evlist->first_sample_time, | ||
3724 | session->evlist->last_sample_time); | ||
3725 | |||
3726 | if (script.range_num < 0) { | ||
3727 | pr_err("Invalid time string\n"); | ||
3728 | err = -EINVAL; | ||
3729 | goto out_delete; | 3708 | goto out_delete; |
3730 | } | ||
3731 | } else { | ||
3732 | script.range_num = 1; | ||
3733 | } | 3709 | } |
3734 | 3710 | ||
3735 | err = __cmd_script(&script); | 3711 | err = __cmd_script(&script); |
@@ -3737,7 +3713,8 @@ int cmd_script(int argc, const char **argv) | |||
3737 | flush_scripting(); | 3713 | flush_scripting(); |
3738 | 3714 | ||
3739 | out_delete: | 3715 | out_delete: |
3740 | zfree(&script.ptime_range); | 3716 | if (script.ptime_range) |
3717 | zfree(&script.ptime_range); | ||
3741 | 3718 | ||
3742 | perf_evlist__free_stats(session->evlist); | 3719 | perf_evlist__free_stats(session->evlist); |
3743 | perf_session__delete(session); | 3720 | perf_session__delete(session); |