aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-report.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/builtin-report.c')
-rw-r--r--tools/perf/builtin-report.c38
1 files changed, 8 insertions, 30 deletions
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 1532ebde6c4b..ee93c18a6685 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -1375,36 +1375,13 @@ repeat:
1375 if (symbol__init(&session->header.env) < 0) 1375 if (symbol__init(&session->header.env) < 0)
1376 goto error; 1376 goto error;
1377 1377
1378 report.ptime_range = perf_time__range_alloc(report.time_str, 1378 if (report.time_str) {
1379 &report.range_size); 1379 ret = perf_time__parse_for_ranges(report.time_str, session,
1380 if (!report.ptime_range) { 1380 &report.ptime_range,
1381 ret = -ENOMEM; 1381 &report.range_size,
1382 goto error; 1382 &report.range_num);
1383 } 1383 if (ret < 0)
1384
1385 if (perf_time__parse_str(report.ptime_range, report.time_str) != 0) {
1386 if (session->evlist->first_sample_time == 0 &&
1387 session->evlist->last_sample_time == 0) {
1388 pr_err("HINT: no first/last sample time found in perf data.\n"
1389 "Please use latest perf binary to execute 'perf record'\n"
1390 "(if '--buildid-all' is enabled, please set '--timestamp-boundary').\n");
1391 ret = -EINVAL;
1392 goto error;
1393 }
1394
1395 report.range_num = perf_time__percent_parse_str(
1396 report.ptime_range, report.range_size,
1397 report.time_str,
1398 session->evlist->first_sample_time,
1399 session->evlist->last_sample_time);
1400
1401 if (report.range_num < 0) {
1402 pr_err("Invalid time string\n");
1403 ret = -EINVAL;
1404 goto error; 1384 goto error;
1405 }
1406 } else {
1407 report.range_num = 1;
1408 } 1385 }
1409 1386
1410 if (session->tevent.pevent && 1387 if (session->tevent.pevent &&
@@ -1426,7 +1403,8 @@ repeat:
1426 ret = 0; 1403 ret = 0;
1427 1404
1428error: 1405error:
1429 zfree(&report.ptime_range); 1406 if (report.ptime_range)
1407 zfree(&report.ptime_range);
1430 1408
1431 perf_session__delete(session); 1409 perf_session__delete(session);
1432 return ret; 1410 return ret;