turbostat failed to return a non-zero exit status even though the
supplied command (turbostat <command>) failed. Currently when turbostat
forks a command it returns zero instead of the actual exit status of the
command. Modify the code to return the exit status.
Signed-off-by: David Arcari <[email protected]>
Cc: Len Brown <[email protected]>
Cc: Jirka Hladky <[email protected]>
Cc: [email protected]
---
tools/power/x86/turbostat/turbostat.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index 9327c0d..c3fad06 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -5077,6 +5077,9 @@ int fork_it(char **argv)
signal(SIGQUIT, SIG_IGN);
if (waitpid(child_pid, &status, 0) == -1)
err(status, "waitpid");
+
+ if (WIFEXITED(status))
+ status = WEXITSTATUS(status);
}
/*
* n.b. fork_it() does not check for errors from for_all_cpus()
--
1.8.3.1
ping -- just want to make sure this doesn't get lost.
Thanks!
On 02/12/2019 09:34 AM, David Arcari wrote:
> turbostat failed to return a non-zero exit status even though the
> supplied command (turbostat <command>) failed. Currently when turbostat
> forks a command it returns zero instead of the actual exit status of the
> command. Modify the code to return the exit status.
>
> Signed-off-by: David Arcari <[email protected]>
> Cc: Len Brown <[email protected]>
> Cc: Jirka Hladky <[email protected]>
> Cc: [email protected]
> ---
> tools/power/x86/turbostat/turbostat.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
> index 9327c0d..c3fad06 100644
> --- a/tools/power/x86/turbostat/turbostat.c
> +++ b/tools/power/x86/turbostat/turbostat.c
> @@ -5077,6 +5077,9 @@ int fork_it(char **argv)
> signal(SIGQUIT, SIG_IGN);
> if (waitpid(child_pid, &status, 0) == -1)
> err(status, "waitpid");
> +
> + if (WIFEXITED(status))
> + status = WEXITSTATUS(status);
> }
> /*
> * n.b. fork_it() does not check for errors from for_all_cpus()
>
Acked-by: Len Brown <[email protected]>
On Wed, Feb 20, 2019 at 5:55 AM David Arcari <[email protected]> wrote:
>
>
> ping -- just want to make sure this doesn't get lost.
>
> Thanks!
>
> On 02/12/2019 09:34 AM, David Arcari wrote:
> > turbostat failed to return a non-zero exit status even though the
> > supplied command (turbostat <command>) failed. Currently when turbostat
> > forks a command it returns zero instead of the actual exit status of the
> > command. Modify the code to return the exit status.
> >
> > Signed-off-by: David Arcari <[email protected]>
> > Cc: Len Brown <[email protected]>
> > Cc: Jirka Hladky <[email protected]>
> > Cc: [email protected]
> > ---
> > tools/power/x86/turbostat/turbostat.c | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
> > index 9327c0d..c3fad06 100644
> > --- a/tools/power/x86/turbostat/turbostat.c
> > +++ b/tools/power/x86/turbostat/turbostat.c
> > @@ -5077,6 +5077,9 @@ int fork_it(char **argv)
> > signal(SIGQUIT, SIG_IGN);
> > if (waitpid(child_pid, &status, 0) == -1)
> > err(status, "waitpid");
> > +
> > + if (WIFEXITED(status))
> > + status = WEXITSTATUS(status);
> > }
> > /*
> > * n.b. fork_it() does not check for errors from for_all_cpus()
> >
>
--
Len Brown, Intel Open Source Technology Center
On Tuesday, February 12, 2019 3:34:39 PM CET David Arcari wrote:
> turbostat failed to return a non-zero exit status even though the
> supplied command (turbostat <command>) failed. Currently when turbostat
> forks a command it returns zero instead of the actual exit status of the
> command. Modify the code to return the exit status.
>
> Signed-off-by: David Arcari <[email protected]>
> Cc: Len Brown <[email protected]>
> Cc: Jirka Hladky <[email protected]>
> Cc: [email protected]
> ---
> tools/power/x86/turbostat/turbostat.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
> index 9327c0d..c3fad06 100644
> --- a/tools/power/x86/turbostat/turbostat.c
> +++ b/tools/power/x86/turbostat/turbostat.c
> @@ -5077,6 +5077,9 @@ int fork_it(char **argv)
> signal(SIGQUIT, SIG_IGN);
> if (waitpid(child_pid, &status, 0) == -1)
> err(status, "waitpid");
> +
> + if (WIFEXITED(status))
> + status = WEXITSTATUS(status);
> }
> /*
> * n.b. fork_it() does not check for errors from for_all_cpus()
>
Applied, thanks!