Re: [PATCH 4/5] perf tools: Support single perf.data file directory

From: Jiri Olsa
Date: Mon Oct 07 2019 - 07:20:30 EST


On Fri, Oct 04, 2019 at 11:31:20AM +0300, Adrian Hunter wrote:

SNIP

> u8 pad[8] = {0};
>
> - if (!perf_data__is_pipe(data) && !perf_data__is_dir(data)) {
> + if (!perf_data__is_pipe(data) && perf_data__is_single_file(data)) {
> off_t file_offset;
> int fd = perf_data__fd(data);
> int err;
> diff --git a/tools/perf/util/data.c b/tools/perf/util/data.c
> index df173f0bf654..964ea101dba6 100644
> --- a/tools/perf/util/data.c
> +++ b/tools/perf/util/data.c
> @@ -76,6 +76,13 @@ int perf_data__open_dir(struct perf_data *data)
> DIR *dir;
> int nr = 0;
>
> + /*
> + * Directory containing a single regular perf data file which is already
> + * open, means there is nothing more to do here.
> + */
> + if (perf_data__is_single_file(data))
> + return 0;
> +

cool, I like this approach much more than the previous flag

any change you (if there's repost) or Arnaldo
could squeeze in indent change below?

thanks,
jirka


---
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index bfa80fe8d369..7f567a521cea 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -227,8 +227,8 @@ struct perf_session *perf_session__new(struct perf_data *data,
/* Open the directory data. */
if (data->is_dir) {
ret = perf_data__open_dir(data);
- if (ret)
- goto out_delete;
+ if (ret)
+ goto out_delete;
}

if (!symbol_conf.kallsyms_name &&