Since commit 6db6127c4dad ("perf report: Treat an argument as a symbol filter"), the only one unrecognized argument for perf-report is treated as a symbol filter. This is not described in man page nor help info, and the result is really confusing, especially when it's misspecified by the user (e.g. missing -i for perf.data).
As we can use "--symbol-filter=" if we really want to filter a symbol, it may be better to revert this misfeature. Signed-off-by: Wei Li <liwei...@huawei.com> --- tools/perf/builtin-report.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 3c74c9c0f3c3..f57ebc1bcd20 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c @@ -1317,13 +1317,9 @@ int cmd_report(int argc, const char **argv) argc = parse_options(argc, argv, options, report_usage, 0); if (argc) { /* - * Special case: if there's an argument left then assume that - * it's a symbol filter: + * Any (unrecognized) arguments left? */ - if (argc > 1) - usage_with_options(report_usage, options); - - report.symbol_filter_str = argv[0]; + usage_with_options(report_usage, options); } if (annotate_check_args(&report.annotation_opts) < 0) -- 2.17.1