public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] benchtests: Restore the clock_gettime option
@ 2020-05-19 20:30 H.J. Lu
  2020-05-19 21:18 ` Alexander Monakov
  0 siblings, 1 reply; 12+ messages in thread
From: H.J. Lu @ 2020-05-19 20:30 UTC (permalink / raw)
  To: libc-alpha

commit 7621e38bf3c58b2d0359545f1f2898017fd89d05
Author: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
Date:   Tue Jan 29 17:43:45 2019 +0000

    Add generic hp-timing support

removed the clock_gettime option.  On x86, fewer cycles doesn't
necessarily mean faster exection due to frequency drop.  We should
restore the clock_gettime option.
---
 benchtests/Makefile       | 6 ++++++
 benchtests/README         | 7 ++++++-
 benchtests/bench-timing.h | 6 +++++-
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/benchtests/Makefile b/benchtests/Makefile
index 335d643ecb..99e90d17a0 100644
--- a/benchtests/Makefile
+++ b/benchtests/Makefile
@@ -132,11 +132,17 @@ endif
 
 CPPFLAGS-nonlib += -DDURATION=$(BENCH_DURATION) -D_ISOMAC
 
+# Use clock_gettime to measure performance of functions.  The default is
+# to use the architecture-specific high precision timing instructions.
+ifdef USE_CLOCK_GETTIME
+CPPFLAGS-nonlib += -DUSE_CLOCK_GETTIME
+else
 # On x86 processors, use RDTSCP, instead of RDTSC, to measure performance
 # of functions.  All x86 processors since 2010 support RDTSCP instruction.
 ifdef USE_RDTSCP
 CPPFLAGS-nonlib += -DUSE_RDTSCP
 endif
+endif
 
 DETAILED_OPT :=
 
diff --git a/benchtests/README b/benchtests/README
index c4f03fd872..f440f3295a 100644
--- a/benchtests/README
+++ b/benchtests/README
@@ -27,7 +27,12 @@ BENCH_DURATION.
 
 The benchmark suite does function call measurements using architecture-specific
 high precision timing instructions whenever available.  When such support is
-not available, it uses clock_gettime (CLOCK_MONOTONIC).
+not available, it uses clock_gettime (CLOCK_MONOTONIC).  One can force the
+benchmark to use clock_gettime by invoking make as follows:
+
+  $ make USE_CLOCK_GETTIME=1 bench
+
+Again, one must run `make bench-clean' before changing the measurement method.
 
 On x86 processors, RDTSCP instruction provides more precise timing data
 than RDTSC instruction.  All x86 processors since 2010 support RDTSCP
diff --git a/benchtests/bench-timing.h b/benchtests/bench-timing.h
index 5b9a8384bb..844a7727c9 100644
--- a/benchtests/bench-timing.h
+++ b/benchtests/bench-timing.h
@@ -19,7 +19,11 @@
 #undef attribute_hidden
 #define attribute_hidden
 #define __clock_gettime clock_gettime
-#include <hp-timing.h>
+#ifdef USE_CLOCK_GETTIME
+# include <sysdeps/generic/hp-timing.h>
+#else
+# include <hp-timing.h>
+#endif
 #include <stdint.h>
 
 #define GL(x) _##x
-- 
2.26.2


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2020-06-04 21:24 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-19 20:30 [PATCH] benchtests: Restore the clock_gettime option H.J. Lu
2020-05-19 21:18 ` Alexander Monakov
2020-05-19 21:45   ` H.J. Lu
2020-05-19 22:16     ` Alexander Monakov
2020-05-20 17:51       ` H.J. Lu
2020-05-20 18:01         ` Alexander Monakov
2020-05-20 18:05       ` Florian Weimer
2020-05-20 18:14         ` V2 " H.J. Lu
2020-05-20 18:17           ` Florian Weimer
2020-05-20 18:18           ` Adhemerval Zanella
2020-05-20 18:52             ` H.J. Lu
2020-06-04 21:24           ` Carlos O'Donell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).