Re: [PATCH] perf stat: Do not show stats if workload fails

From: David Ahern
Date: Thu Dec 26 2013 - 09:11:48 EST


On 12/24/13, 8:30 AM, Arnaldo Carvalho de Melo wrote:
Em Tue, Dec 24, 2013 at 09:53:42AM -0300, Arnaldo Carvalho de Melo escreveu:
>The thing to check is perf_evlist__{prepare,start}_workload notification
>errors using SIGUSR1, that we need to check for in the caller, and emit
>the message, no?
Something like this:

1. We tell perf_evlist__prepare_workload that we want a signal if execvp
fails, it will be a SIGUSR1

2. We catch that signal in 'stat' and check that we got a signal, only
problem so far with this signal maze is that we're getting a SIGCHLD
while I was expecting a SIGUSR1... I.e. the "if (signr != -1) test
really should be if (signr == SIGUSR1), but I'm getting a SIGCHLD there
and the elves are tugging me away...

Did the elves release you?

There are all kinds of failure paths with the workload functions. In the end I was focusing on perf-stat actually checking the rc on the start_workload function. If it fails, then write() failed and something happened to the workload process. In that case don't show the counters.

Handling the other error paths with appropriate messages will take additional effort - as you are finding. ;-)

David
--
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/