benchtests: Restore the clock_gettime option

commit 7621e38bf3
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>
This commit is contained in:
H.J. Lu 2020-06-05 09:48:04 -07:00
parent f607047668
commit e52434a2e4
3 changed files with 17 additions and 2 deletions

View File

@ -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 :=

View File

@ -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

View File

@ -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