Re: [PATCH v5 1/2] perf record: Propagate exit status of a command line workload

From: Jiri Olsa
Date: Thu May 08 2014 - 06:32:43 EST


On Thu, May 08, 2014 at 04:59:53PM +0900, Namhyung Kim wrote:

SNIP

> +
> + if (!err && !file->is_pipe) {
> + rec->session->header.data_size += rec->bytes_written;
> +
> + if (!rec->no_buildid)
> + process_buildids(rec);
> + perf_session__write_header(rec->session, rec->evlist,
> + file->fd, true);
> + }
> +
> + if (signr != -1) {
> + signal(signr, SIG_DFL);
> + raise(signr);
> + }

hum.. so we dont call perf_session__delete in case we propagate
the signal.. also the outer function's cleanups are not called:

perf_evlist__delete(rec->evlist);
symbol__exit();

the only cleanup I found that actually matters here and won't be
called is 'vdso__exit' which removes the temp vdso library file.

Maybe we could have one on_exit callback raising the signal
if needed.. at the time we are sure we called all out cleanup
functions.

thanks,
jirka
--
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/