2016-10-25 20:56:20

by Paul Bolle

[permalink] [raw]
Subject: [PATCH 0/2] x86: use stdout for success and stdout for failure

For some time now my x86 builds are warning free. Yay! But there's still one
single line printed to stderr:
Succeed: decoded and checked 1767380 instructions

This message is printed if the "insn decoder test" ran successful. Patch 1/2
sends this message to stdout (and fixes the typo).

Patch 2/2 does the reverse for the "insn sanity test": it sends a message to
stderr if that test fails.

One thing puzzles me about these two tests: I must have run them hundreds of
times but I've never seen them fail. Have other people ran into failures?

Paul Bolle (2):
x86: use stdout if insn decoder test is successful
x86: use stderr if insn sanity test fails

arch/x86/tools/insn_sanity.c | 3 ++-
arch/x86/tools/test_get_len.c | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)

--
2.7.4


2016-10-25 20:56:23

by Paul Bolle

[permalink] [raw]
Subject: [PATCH 1/2] x86: use stdout if insn decoder test is successful

If the instruction decoder test ran successful it prints a message like
this to stderr:
Succeed: decoded and checked 1767380 instructions

But, as described in "console mode programming user interface guidelines
version 101" which doesn't exist, programs should use stderr for errors
or warnings. We're told about a successful run here, so the instruction
decoder test should use stdout.

Let's fix the typo too, while we're at it.

Signed-off-by: Paul Bolle <[email protected]>
---
The joke about the guidelines is shamelessly copied from commit 55a6e622e66a
("arch/x86/tools/insn_sanity.c: Identify source of messages"). Let's hope
Andrew doesn't mind!

arch/x86/tools/test_get_len.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/tools/test_get_len.c b/arch/x86/tools/test_get_len.c
index 56f04db0c9c0..ecf31e0358c8 100644
--- a/arch/x86/tools/test_get_len.c
+++ b/arch/x86/tools/test_get_len.c
@@ -167,7 +167,7 @@ int main(int argc, char **argv)
fprintf(stderr, "Warning: decoded and checked %d"
" instructions with %d warnings\n", insns, warnings);
else
- fprintf(stderr, "Succeed: decoded and checked %d"
+ fprintf(stdout, "Success: decoded and checked %d"
" instructions\n", insns);
return 0;
}
--
2.7.4

2016-10-25 20:56:22

by Paul Bolle

[permalink] [raw]
Subject: [PATCH 2/2] x86: use stderr if insn sanity test fails

If the instruction sanity test fails, it prints a "Failure" message to
stdout. Make this program behave like the rest of the build and print
that message to stderr.

Signed-off-by: Paul Bolle <[email protected]>
---
arch/x86/tools/insn_sanity.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/tools/insn_sanity.c b/arch/x86/tools/insn_sanity.c
index ba70ff232917..1972565ab106 100644
--- a/arch/x86/tools/insn_sanity.c
+++ b/arch/x86/tools/insn_sanity.c
@@ -269,7 +269,8 @@ int main(int argc, char **argv)
insns++;
}

- fprintf(stdout, "%s: %s: decoded and checked %d %s instructions with %d errors (seed:0x%x)\n",
+ fprintf((errors) ? stderr : stdout,
+ "%s: %s: decoded and checked %d %s instructions with %d errors (seed:0x%x)\n",
prog,
(errors) ? "Failure" : "Success",
insns,
--
2.7.4

Subject: [tip:x86/asm] x86/decoder: Use stdout if insn decoder test is successful

Commit-ID: bdcc18b548b8f1fab23c097724c6f32daac03185
Gitweb: http://git.kernel.org/tip/bdcc18b548b8f1fab23c097724c6f32daac03185
Author: Paul Bolle <[email protected]>
AuthorDate: Tue, 25 Oct 2016 22:56:04 +0200
Committer: Ingo Molnar <[email protected]>
CommitDate: Wed, 26 Oct 2016 08:41:06 +0200

x86/decoder: Use stdout if insn decoder test is successful

If the instruction decoder test ran successful it prints a message like
this to stderr:
Succeed: decoded and checked 1767380 instructions

But, as described in "console mode programming user interface guidelines
version 101" which doesn't exist, programs should use stderr for errors
or warnings. We're told about a successful run here, so the instruction
decoder test should use stdout.

Let's fix the typo too, while we're at it.

Signed-off-by: Paul Bolle <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
---
arch/x86/tools/test_get_len.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/tools/test_get_len.c b/arch/x86/tools/test_get_len.c
index 56f04db..ecf31e0 100644
--- a/arch/x86/tools/test_get_len.c
+++ b/arch/x86/tools/test_get_len.c
@@ -167,7 +167,7 @@ int main(int argc, char **argv)
fprintf(stderr, "Warning: decoded and checked %d"
" instructions with %d warnings\n", insns, warnings);
else
- fprintf(stderr, "Succeed: decoded and checked %d"
+ fprintf(stdout, "Success: decoded and checked %d"
" instructions\n", insns);
return 0;
}

Subject: [tip:x86/asm] x86/decoder: Use stderr if insn sanity test fails

Commit-ID: bb12d6740f6de393927362f23f833a79d85df384
Gitweb: http://git.kernel.org/tip/bb12d6740f6de393927362f23f833a79d85df384
Author: Paul Bolle <[email protected]>
AuthorDate: Tue, 25 Oct 2016 22:56:05 +0200
Committer: Ingo Molnar <[email protected]>
CommitDate: Wed, 26 Oct 2016 08:41:06 +0200

x86/decoder: Use stderr if insn sanity test fails

If the instruction sanity test fails, it prints a "Failure" message to
stdout. Make this program behave like the rest of the build and print
that message to stderr.

Signed-off-by: Paul Bolle <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
---
arch/x86/tools/insn_sanity.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/tools/insn_sanity.c b/arch/x86/tools/insn_sanity.c
index ba70ff2..1972565 100644
--- a/arch/x86/tools/insn_sanity.c
+++ b/arch/x86/tools/insn_sanity.c
@@ -269,7 +269,8 @@ int main(int argc, char **argv)
insns++;
}

- fprintf(stdout, "%s: %s: decoded and checked %d %s instructions with %d errors (seed:0x%x)\n",
+ fprintf((errors) ? stderr : stdout,
+ "%s: %s: decoded and checked %d %s instructions with %d errors (seed:0x%x)\n",
prog,
(errors) ? "Failure" : "Success",
insns,