2019-02-12 14:56:53

by David Arcari

[permalink] [raw]
Subject: [PATCH] tools/power turbostat: return the exit status of a command

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



2019-02-20 13:56:48

by David Arcari

[permalink] [raw]
Subject: Re: [PATCH] tools/power turbostat: return the exit status of a command


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()
>


2019-03-19 15:14:44

by Len Brown

[permalink] [raw]
Subject: Re: [PATCH] tools/power turbostat: return the exit status of a command

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

2019-03-21 23:29:19

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] tools/power turbostat: return the exit status of a command

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!