Re: [PATCH] perf session: Fix infinite loop on invalid perf.data file

From: Ingo Molnar
Date: Tue Oct 01 2013 - 03:17:06 EST



* Namhyung Kim <namhyung@xxxxxxxxxx> wrote:

> --- a/tools/perf/util/header.c
> +++ b/tools/perf/util/header.c
> @@ -2753,6 +2753,15 @@ int perf_session__read_header(struct perf_session *session)
> if (perf_file_header__read(&f_header, header, fd) < 0)
> return -EINVAL;
>
> + /*
> + * Sanity check that perf.data was written cleanly; data size is
> + * initialized to 0 and updated only if the on_exit function is run.
> + * If data size is still 0 then the file contains only partial
> + * information. Just warn user and process it as much as it can.
> + */
> + if (f_header.data.size == 0)
> + pr_warning("Data size is 0. Was the record command properly terminated?\n");

Just a detail: it would be nice to make all the user facing messages in
tools/perf/util/header.c more specific and more structured. For example
prefixing it with 'perf header:' would be fine:

WARNING: perf/header: Data size is 0. Was the 'perf record' command properly terminated?

or something like that.

etc.

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/