diff options
author | Will Newton <will.newton@linaro.org> | 2013-09-11 13:07:33 +0100 |
---|---|---|
committer | Will Newton <will.newton@linaro.org> | 2013-09-11 15:18:20 +0100 |
commit | b987c776723eea2f223885289c466386f12e823a (patch) | |
tree | c03a7eed4aabf2c8397cda6366509a589ece16a6 | |
parent | c0e0f3b2979ed2046547cbc800256dabc03d1944 (diff) | |
download | glibc-b987c776723eea2f223885289c466386f12e823a.tar.gz glibc-b987c776723eea2f223885289c466386f12e823a.tar.xz glibc-b987c776723eea2f223885289c466386f12e823a.zip |
benchtests: Rename argument to TIMING_INIT macro.
The TIMING_INIT macro currently sets the number of loop iterations to 1000, which limits usefulness. Make the argument a clock resolution value and multiply by 1000 in bench-skeleton.c instead to allow easier reuse. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> * benchtests/bench-timing.h (TIMING_INIT): Rename ITERS parameter to RES. Remove hardcoded 1000 value. * benchtests/bench-skeleton.c (main): Pass RES parameter to TIMING_INIT and multiply result by 1000.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | benchtests/bench-skeleton.c | 6 | ||||
-rw-r--r-- | benchtests/bench-timing.h | 14 |
3 files changed, 17 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog index a3f6ba7c11..6a549794d0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2013-09-11 Will Newton <will.newton@linaro.org> + + * benchtests/bench-timing.h (TIMING_INIT): Rename ITERS + parameter to RES. Remove hardcoded 1000 value. + * benchtests/bench-skeleton.c (main): Pass RES parameter + to TIMING_INIT and multiply result by 1000. + 2013-09-10 Adhemerval Zanella <azanella@linux.vnet.ibm.com> * sysdeps/powerpc/fpu/libm-test-ulps: Update. diff --git a/benchtests/bench-skeleton.c b/benchtests/bench-skeleton.c index 4e3a50704d..05edc69c5e 100644 --- a/benchtests/bench-skeleton.c +++ b/benchtests/bench-skeleton.c @@ -53,9 +53,11 @@ main (int argc, char **argv) memset (&runtime, 0, sizeof (runtime)); - unsigned long iters; + unsigned long iters, res; - TIMING_INIT (iters); + TIMING_INIT (res); + + iters = 1000 * res; for (int v = 0; v < NUM_VARIANTS; v++) { diff --git a/benchtests/bench-timing.h b/benchtests/bench-timing.h index 009813bb80..48a85210a0 100644 --- a/benchtests/bench-timing.h +++ b/benchtests/bench-timing.h @@ -25,10 +25,10 @@ hp_timing_t _dl_hp_timing_overhead; typedef hp_timing_t timing_t; -# define TIMING_INIT(iters) \ +# define TIMING_INIT(res) \ ({ \ HP_TIMING_DIFF_INIT(); \ - (iters) = 1000; \ + (res) = 1; \ }) # define TIMING_NOW(var) HP_TIMING_NOW (var) @@ -43,15 +43,13 @@ typedef hp_timing_t timing_t; #else typedef uint64_t timing_t; -/* Measure 1000 times the resolution of the clock. So for a 1ns - resolution clock, we measure 1000 iterations of the function call at a - time. Measurements close to the minimum clock resolution won't make - much sense, but it's better than having nothing at all. */ -# define TIMING_INIT(iters) \ +/* Measure the resolution of the clock so we can scale the number of + benchmark iterations by this value. */ +# define TIMING_INIT(res) \ ({ \ struct timespec start; \ clock_getres (CLOCK_PROCESS_CPUTIME_ID, &start); \ - (iters) = 1000 * start.tv_nsec; \ + (res) = start.tv_nsec; \ }) # define TIMING_NOW(var) \ |