[PATCH] all: Fix printf format errors

Subsystems: the rest

STALE1986d

8 messages, 4 authors, 2021-03-04 · open the first message on its own page

[PATCH] all: Fix printf format errors

From: Christian Eggers <ceggers@arri.de>
Date: 2021-02-26 08:13:14

time_t is "long" or "long long" (depending on the system).  So it should
be safe to convert it to "long long", in order to get a consistent data
type on all systems.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
 src/cyclictest/cyclictest.c         | 8 ++++----
 src/hackbench/hackbench.c           | 2 +-
 src/sched_deadline/cyclicdeadline.c | 6 +++---
 src/signaltest/signaltest.c         | 6 +++---
 4 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index 157047837259..8a7784e645da 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -1751,15 +1751,15 @@ static void write_stats(FILE *f, void *data)
 			if (s->hist_array[j] == 0)
 				continue;
 			fprintf(f, "%s", comma ? ",\n" : "\n");
-			fprintf(f, "        \"%u\": %" PRIu64, j, s->hist_array[j]);
+			fprintf(f, "        \"%u\": %ld", j, s->hist_array[j]);
 			comma = 1;
 		}
 		if (comma)
 			fprintf(f, "\n");
 		fprintf(f, "      },\n");
-		fprintf(f, "      \"cycles\": %" PRIu64 ",\n", s->cycles);
-		fprintf(f, "      \"min\": %" PRIu64 ",\n", s->min);
-		fprintf(f, "      \"max\": %" PRIu64 ",\n", s->max);
+		fprintf(f, "      \"cycles\": %lu,\n", s->cycles);
+		fprintf(f, "      \"min\": %ld,\n", s->min);
+		fprintf(f, "      \"max\": %ld,\n", s->max);
 		fprintf(f, "      \"avg\": %.2f,\n", s->avg/s->cycles);
 		fprintf(f, "      \"cpu\": %d,\n", par[i]->cpu);
 		fprintf(f, "      \"node\": %d\n", par[i]->node);
diff --git a/src/hackbench/hackbench.c b/src/hackbench/hackbench.c
index 268c23233004..785b9c076256 100644
--- a/src/hackbench/hackbench.c
+++ b/src/hackbench/hackbench.c
@@ -505,7 +505,7 @@ int main(int argc, char *argv[])
 	/* Print time... */
 	if (timer_started) {
 		timersub(&stop, &start, &diff);
-		printf("Time: %lu.%03lu\n", diff.tv_sec, diff.tv_usec/1000);
+		printf("Time: %lld.%03lld\n", (long long)diff.tv_sec, (long long)diff.tv_usec/1000);
 	}
 	else
 		fprintf(stderr, "No measurements available\n");
diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c
index ed3c960d9916..1c66a227f156 100644
--- a/src/sched_deadline/cyclicdeadline.c
+++ b/src/sched_deadline/cyclicdeadline.c
@@ -978,9 +978,9 @@ static void write_stats(FILE *f, void *data)
 	for (i = 0; i < nr_threads; i++) {
 		s = &sd[i].stat;
 		fprintf(f, "    \"%u\": {\n", i);
-		fprintf(f, "	 \"cycles\": %" PRIu64 ",\n", s->cycles);
-		fprintf(f, "	 \"min\": %" PRIu64 ",\n", s->min);
-		fprintf(f, "	 \"max\": %" PRIu64 ",\n", s->max);
+		fprintf(f, "	 \"cycles\": %lu,\n", s->cycles);
+		fprintf(f, "	 \"min\": %ld,\n", s->min);
+		fprintf(f, "	 \"max\": %ld,\n", s->max);
 		fprintf(f, "	 \"avg\": %.2f\n", s->avg/s->cycles);
 		fprintf(f, "    }%s\n", i == nr_threads - 1 ? "" : ",");
 	}
diff --git a/src/signaltest/signaltest.c b/src/signaltest/signaltest.c
index b1a7e1db8302..b39e9d2a96d6 100644
--- a/src/signaltest/signaltest.c
+++ b/src/signaltest/signaltest.c
@@ -392,9 +392,9 @@ static void write_stats(FILE *f, void *data)
 	for (i = 0; i < num_threads; i++) {
 		fprintf(f, "    \"%u\": {\n", i);
 		s = &par->stats[i];
-		fprintf(f, "      \"cycles\": %" PRIu64 ",\n", s->cycles);
-		fprintf(f, "      \"min\": %" PRIu64 ",\n", s->min);
-		fprintf(f, "      \"max\": %" PRIu64 ",\n", s->max);
+		fprintf(f, "      \"cycles\": %lu,\n", s->cycles);
+		fprintf(f, "      \"min\": %ld,\n", s->min);
+		fprintf(f, "      \"max\": %ld,\n", s->max);
 		fprintf(f, "      \"avg\": %.2f,\n", s->avg/s->cycles);
 		fprintf(f, "      \"cpu\": %d\n", par->cpu);
 		fprintf(f, "    }%s\n", i == num_threads - 1 ? "" : ",");
-- 
Christian Eggers
Embedded software developer

Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler

Re: [PATCH] all: Fix printf format errors

From: John Kacur <jkacur@redhat.com>
Date: 2021-03-03 06:32:33


On Fri, 26 Feb 2021, Christian Eggers wrote:
quoted hunk
time_t is "long" or "long long" (depending on the system).  So it should
be safe to convert it to "long long", in order to get a consistent data
type on all systems.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
 src/cyclictest/cyclictest.c         | 8 ++++----
 src/hackbench/hackbench.c           | 2 +-
 src/sched_deadline/cyclicdeadline.c | 6 +++---
 src/signaltest/signaltest.c         | 6 +++---
 4 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index 157047837259..8a7784e645da 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -1751,15 +1751,15 @@ static void write_stats(FILE *f, void *data)
 			if (s->hist_array[j] == 0)
 				continue;
 			fprintf(f, "%s", comma ? ",\n" : "\n");
-			fprintf(f, "        \"%u\": %" PRIu64, j, s->hist_array[j]);
+			fprintf(f, "        \"%u\": %ld", j, s->hist_array[j]);
 			comma = 1;
 		}
 		if (comma)
 			fprintf(f, "\n");
 		fprintf(f, "      },\n");
-		fprintf(f, "      \"cycles\": %" PRIu64 ",\n", s->cycles);
-		fprintf(f, "      \"min\": %" PRIu64 ",\n", s->min);
-		fprintf(f, "      \"max\": %" PRIu64 ",\n", s->max);
+		fprintf(f, "      \"cycles\": %lu,\n", s->cycles);
+		fprintf(f, "      \"min\": %ld,\n", s->min);
+		fprintf(f, "      \"max\": %ld,\n", s->max);
 		fprintf(f, "      \"avg\": %.2f,\n", s->avg/s->cycles);
 		fprintf(f, "      \"cpu\": %d,\n", par[i]->cpu);
 		fprintf(f, "      \"node\": %d\n", par[i]->node);
diff --git a/src/hackbench/hackbench.c b/src/hackbench/hackbench.c
index 268c23233004..785b9c076256 100644
--- a/src/hackbench/hackbench.c
+++ b/src/hackbench/hackbench.c
@@ -505,7 +505,7 @@ int main(int argc, char *argv[])
 	/* Print time... */
 	if (timer_started) {
 		timersub(&stop, &start, &diff);
-		printf("Time: %lu.%03lu\n", diff.tv_sec, diff.tv_usec/1000);
+		printf("Time: %lld.%03lld\n", (long long)diff.tv_sec, (long long)diff.tv_usec/1000);
 	}
 	else
 		fprintf(stderr, "No measurements available\n");
diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c
index ed3c960d9916..1c66a227f156 100644
--- a/src/sched_deadline/cyclicdeadline.c
+++ b/src/sched_deadline/cyclicdeadline.c
@@ -978,9 +978,9 @@ static void write_stats(FILE *f, void *data)
 	for (i = 0; i < nr_threads; i++) {
 		s = &sd[i].stat;
 		fprintf(f, "    \"%u\": {\n", i);
-		fprintf(f, "	 \"cycles\": %" PRIu64 ",\n", s->cycles);
-		fprintf(f, "	 \"min\": %" PRIu64 ",\n", s->min);
-		fprintf(f, "	 \"max\": %" PRIu64 ",\n", s->max);
+		fprintf(f, "	 \"cycles\": %lu,\n", s->cycles);
+		fprintf(f, "	 \"min\": %ld,\n", s->min);
+		fprintf(f, "	 \"max\": %ld,\n", s->max);
 		fprintf(f, "	 \"avg\": %.2f\n", s->avg/s->cycles);
 		fprintf(f, "    }%s\n", i == nr_threads - 1 ? "" : ",");
 	}
diff --git a/src/signaltest/signaltest.c b/src/signaltest/signaltest.c
index b1a7e1db8302..b39e9d2a96d6 100644
--- a/src/signaltest/signaltest.c
+++ b/src/signaltest/signaltest.c
@@ -392,9 +392,9 @@ static void write_stats(FILE *f, void *data)
 	for (i = 0; i < num_threads; i++) {
 		fprintf(f, "    \"%u\": {\n", i);
 		s = &par->stats[i];
-		fprintf(f, "      \"cycles\": %" PRIu64 ",\n", s->cycles);
-		fprintf(f, "      \"min\": %" PRIu64 ",\n", s->min);
-		fprintf(f, "      \"max\": %" PRIu64 ",\n", s->max);
+		fprintf(f, "      \"cycles\": %lu,\n", s->cycles);
+		fprintf(f, "      \"min\": %ld,\n", s->min);
+		fprintf(f, "      \"max\": %ld,\n", s->max);
 		fprintf(f, "      \"avg\": %.2f,\n", s->avg/s->cycles);
 		fprintf(f, "      \"cpu\": %d\n", par->cpu);
 		fprintf(f, "    }%s\n", i == num_threads - 1 ? "" : ",");
-- 
Christian Eggers
Embedded software developer

Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler
Are you seeing a compile time warning on some systems?

John

Re: [PATCH] all: Fix printf format errors

From: Christian Eggers <ceggers@arri.de>
Date: 2021-03-04 00:21:58

On Tuesday, 2 March 2021, 20:58:22 CET, John Kacur wrote:
On Fri, 26 Feb 2021, Christian Eggers wrote:
quoted
time_t is "long" or "long long" (depending on the system).  So it should
be safe to convert it to "long long", in order to get a consistent data
type on all systems.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
 		fprintf(f, "    }%s\n", i == num_threads - 1 ? "" : ",");
[...}
Are you seeing a compile time warning on some systems?
Yes, I do. I have an ARM32 system with 64 bit time_t.

I think that some of the printf format strings are simply wrong (e.g. using
PRIu64 for a "long int").  For time_t, some systems require "%ld" while others
require "%lld".  Casting the values to "long long" seems to be easier compared
to have individual format strings for different platforms.

regards
Christian



Re: [PATCH] all: Fix printf format errors

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2021-03-04 00:21:59

On 2021-03-02 14:58:22 [-0500], John Kacur wrote:
Are you seeing a compile time warning on some systems?
My wild guess would be 32bit systems.
John
Sebastian

Re: [PATCH] all: Fix printf format errors

From: Daniel Wagner <hidden>
Date: 2021-03-04 00:22:01

On Wed, Mar 03, 2021 at 07:23:50AM +0100, Christian Eggers wrote:
On Tuesday, 2 March 2021, 20:58:22 CET, John Kacur wrote:
quoted
On Fri, 26 Feb 2021, Christian Eggers wrote:
quoted
time_t is "long" or "long long" (depending on the system).  So it should
be safe to convert it to "long long", in order to get a consistent data
type on all systems.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
            fprintf(f, "    }%s\n", i == num_threads - 1 ? "" : ",");
[...}
Are you seeing a compile time warning on some systems?
Yes, I do. I have an ARM32 system with 64 bit time_t.

I think that some of the printf format strings are simply wrong (e.g. using
PRIu64 for a "long int").  For time_t, some systems require "%ld" while others
require "%lld".  Casting the values to "long long" seems to be easier compared
to have individual format strings for different platforms.
Indeed, that was my fault. I've also send out patches for this a couple
of weeks ago IIRC.

Re: [PATCH] all: Fix printf format errors

From: John Kacur <jkacur@redhat.com>
Date: 2021-03-04 00:22:02


On Fri, 26 Feb 2021, Christian Eggers wrote:
quoted hunk
time_t is "long" or "long long" (depending on the system).  So it should
be safe to convert it to "long long", in order to get a consistent data
type on all systems.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
 src/cyclictest/cyclictest.c         | 8 ++++----
 src/hackbench/hackbench.c           | 2 +-
 src/sched_deadline/cyclicdeadline.c | 6 +++---
 src/signaltest/signaltest.c         | 6 +++---
 4 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c
index 157047837259..8a7784e645da 100644
--- a/src/cyclictest/cyclictest.c
+++ b/src/cyclictest/cyclictest.c
@@ -1751,15 +1751,15 @@ static void write_stats(FILE *f, void *data)
 			if (s->hist_array[j] == 0)
 				continue;
 			fprintf(f, "%s", comma ? ",\n" : "\n");
-			fprintf(f, "        \"%u\": %" PRIu64, j, s->hist_array[j]);
+			fprintf(f, "        \"%u\": %ld", j, s->hist_array[j]);
 			comma = 1;
 		}
 		if (comma)
 			fprintf(f, "\n");
 		fprintf(f, "      },\n");
-		fprintf(f, "      \"cycles\": %" PRIu64 ",\n", s->cycles);
-		fprintf(f, "      \"min\": %" PRIu64 ",\n", s->min);
-		fprintf(f, "      \"max\": %" PRIu64 ",\n", s->max);
+		fprintf(f, "      \"cycles\": %lu,\n", s->cycles);
+		fprintf(f, "      \"min\": %ld,\n", s->min);
+		fprintf(f, "      \"max\": %ld,\n", s->max);
 		fprintf(f, "      \"avg\": %.2f,\n", s->avg/s->cycles);
 		fprintf(f, "      \"cpu\": %d,\n", par[i]->cpu);
 		fprintf(f, "      \"node\": %d\n", par[i]->node);
diff --git a/src/hackbench/hackbench.c b/src/hackbench/hackbench.c
index 268c23233004..785b9c076256 100644
--- a/src/hackbench/hackbench.c
+++ b/src/hackbench/hackbench.c
@@ -505,7 +505,7 @@ int main(int argc, char *argv[])
 	/* Print time... */
 	if (timer_started) {
 		timersub(&stop, &start, &diff);
-		printf("Time: %lu.%03lu\n", diff.tv_sec, diff.tv_usec/1000);
+		printf("Time: %lld.%03lld\n", (long long)diff.tv_sec, (long long)diff.tv_usec/1000);
 	}
 	else
 		fprintf(stderr, "No measurements available\n");
diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c
index ed3c960d9916..1c66a227f156 100644
--- a/src/sched_deadline/cyclicdeadline.c
+++ b/src/sched_deadline/cyclicdeadline.c
@@ -978,9 +978,9 @@ static void write_stats(FILE *f, void *data)
 	for (i = 0; i < nr_threads; i++) {
 		s = &sd[i].stat;
 		fprintf(f, "    \"%u\": {\n", i);
-		fprintf(f, "	 \"cycles\": %" PRIu64 ",\n", s->cycles);
-		fprintf(f, "	 \"min\": %" PRIu64 ",\n", s->min);
-		fprintf(f, "	 \"max\": %" PRIu64 ",\n", s->max);
+		fprintf(f, "	 \"cycles\": %lu,\n", s->cycles);
+		fprintf(f, "	 \"min\": %ld,\n", s->min);
+		fprintf(f, "	 \"max\": %ld,\n", s->max);
 		fprintf(f, "	 \"avg\": %.2f\n", s->avg/s->cycles);
 		fprintf(f, "    }%s\n", i == nr_threads - 1 ? "" : ",");
 	}
diff --git a/src/signaltest/signaltest.c b/src/signaltest/signaltest.c
index b1a7e1db8302..b39e9d2a96d6 100644
--- a/src/signaltest/signaltest.c
+++ b/src/signaltest/signaltest.c
@@ -392,9 +392,9 @@ static void write_stats(FILE *f, void *data)
 	for (i = 0; i < num_threads; i++) {
 		fprintf(f, "    \"%u\": {\n", i);
 		s = &par->stats[i];
-		fprintf(f, "      \"cycles\": %" PRIu64 ",\n", s->cycles);
-		fprintf(f, "      \"min\": %" PRIu64 ",\n", s->min);
-		fprintf(f, "      \"max\": %" PRIu64 ",\n", s->max);
+		fprintf(f, "      \"cycles\": %lu,\n", s->cycles);
+		fprintf(f, "      \"min\": %ld,\n", s->min);
+		fprintf(f, "      \"max\": %ld,\n", s->max);
 		fprintf(f, "      \"avg\": %.2f,\n", s->avg/s->cycles);
 		fprintf(f, "      \"cpu\": %d\n", par->cpu);
 		fprintf(f, "    }%s\n", i == num_threads - 1 ? "" : ",");
-- 
Christian Eggers
Embedded software developer

Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler
I took the patches that Daniel Wagner already sent for cyclictest and 
cyclicdeadline. Please make sure they work for you.

If you send me separate patches for hackbench and for signaltest I'll
take them.

Thanks

John Kacur

Re: [PATCH] all: Fix printf format errors

From: John Kacur <jkacur@redhat.com>
Date: 2021-03-04 00:22:10


On Wed, 3 Mar 2021, Sebastian Andrzej Siewior wrote:
On 2021-03-02 14:58:22 [-0500], John Kacur wrote:
quoted
Are you seeing a compile time warning on some systems?
My wild guess would be 32bit systems.
haha, mine too, but is it too much to ask for some better
descriptions in the patches than, "fix printf format errors"?
quoted
John
Sebastian

Re: [PATCH] all: Fix printf format errors

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2021-03-04 08:22:04

On 2021-03-03 18:16:18 [-0500], John Kacur wrote:

On Wed, 3 Mar 2021, Sebastian Andrzej Siewior wrote:
quoted
On 2021-03-02 14:58:22 [-0500], John Kacur wrote:
quoted
Are you seeing a compile time warning on some systems?
My wild guess would be 32bit systems.
haha, mine too, but is it too much to ask for some better
descriptions in the patches than, "fix printf format errors"?
nope.
Not sure the author is aware if the request :)

Sebastian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help