aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@sourceware.org>2018-02-02 09:55:45 +0530
committerSiddhesh Poyarekar <siddhesh@sourceware.org>2018-02-02 09:55:45 +0530
commit3dfcbfa1a4bfa39344e8d945ed1bd697c4c9fe96 (patch)
tree10aa8a2045fa9230e46e2532ecf0dcac91567779
parent39f898c69205ea4dc3ca2e817f797df95d928347 (diff)
downloadglibc-3dfcbfa1a4bfa39344e8d945ed1bd697c4c9fe96.tar
glibc-3dfcbfa1a4bfa39344e8d945ed1bd697c4c9fe96.tar.gz
glibc-3dfcbfa1a4bfa39344e8d945ed1bd697c4c9fe96.tar.bz2
glibc-3dfcbfa1a4bfa39344e8d945ed1bd697c4c9fe96.zip
benchtests: Reallocate buffers for every test run
Keeping the buffers the same across test runs gives later invocations the advantage since they access cached data. Reallocate so that all test runs are on equal grounds. * benchtests/bench-memcmp.c (do_test): Call realloc_buf for every test run.
-rw-r--r--ChangeLog5
-rw-r--r--benchtests/bench-memcmp.c23
2 files changed, 18 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 480090e720..4362a79893 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-02-02 Siddhesh Poyarekar <siddhesh@sourceware.org>
+
+ * benchtests/bench-memcmp.c (do_test): Call realloc_buf for
+ every test run.
+
2018-02-01 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/syscall-names.list: Update kernel
diff --git a/benchtests/bench-memcmp.c b/benchtests/bench-memcmp.c
index 38cbdf8d5a..c7255a5b0e 100644
--- a/benchtests/bench-memcmp.c
+++ b/benchtests/bench-memcmp.c
@@ -110,20 +110,23 @@ do_test (size_t align1, size_t align2, size_t len, int exp_result)
if (align2 + (len + 1) * CHARBYTES >= page_size)
return;
- s1 = (CHAR *) (buf1 + align1);
- s2 = (CHAR *) (buf2 + align2);
+ printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
- for (i = 0; i < len; i++)
- s1[i] = s2[i] = 1 + (23 << ((CHARBYTES - 1) * 8)) * i % CHAR__MAX;
+ FOR_EACH_IMPL (impl, 0)
+ {
+ s1 = (CHAR *) (buf1 + align1);
+ s2 = (CHAR *) (buf2 + align2);
- s1[len] = align1;
- s2[len] = align2;
- s2[len - 1] -= exp_result;
+ for (i = 0; i < len; i++)
+ s1[i] = s2[i] = 1 + (23 << ((CHARBYTES - 1) * 8)) * i % CHAR__MAX;
- printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
+ s1[len] = align1;
+ s2[len] = align2;
+ s2[len - 1] -= exp_result;
- FOR_EACH_IMPL (impl, 0)
- do_one_test (impl, s1, s2, len, exp_result);
+ do_one_test (impl, s1, s2, len, exp_result);
+ realloc_bufs ();
+ }
putchar ('\n');
}