aboutsummaryrefslogtreecommitdiff
path: root/benchtests
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2020-06-05 09:48:04 -0700
committerH.J. Lu <hjl.tools@gmail.com>2020-06-05 09:48:07 -0700
commite52434a2e4d1105272daaef87678da950fbec73f (patch)
tree32d8bfaeedb32a24a51a5ee588f0417542b69f29 /benchtests
parentf6070476687af9ca1b5837f8a45047acdd419b08 (diff)
downloadglibc-e52434a2e4d1105272daaef87678da950fbec73f.zip
glibc-e52434a2e4d1105272daaef87678da950fbec73f.tar.gz
glibc-e52434a2e4d1105272daaef87678da950fbec73f.tar.bz2
benchtests: Restore the clock_gettime option
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. Restore the clock_gettime option for some x86 CPUs on which value from RDTSC may not be incremented at a fixed rate. Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'benchtests')
-rw-r--r--benchtests/Makefile6
-rw-r--r--benchtests/README7
-rw-r--r--benchtests/bench-timing.h6
3 files changed, 17 insertions, 2 deletions
diff --git a/benchtests/Makefile b/benchtests/Makefile
index 335d643..99e90d1 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 c4f03fd..f440f32 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 d0176fb..c632d44 100644
--- a/benchtests/bench-timing.h
+++ b/benchtests/bench-timing.h
@@ -18,7 +18,11 @@
#undef attribute_hidden
#define attribute_hidden
-#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