[COMMITTED] benchtests: Reallocate buffers for every test run

Message ID 20180202044809.2797-3-siddhesh@sourceware.org
State Committed
Headers

Commit Message

Siddhesh Poyarekar Feb. 2, 2018, 4:48 a.m. UTC
  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.
---
 ChangeLog                 |  5 +++++
 benchtests/bench-memcmp.c | 25 ++++++++++++++-----------
 2 files changed, 19 insertions(+), 11 deletions(-)
  

Patch

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);
-
-  for (i = 0; i < len; i++)
-    s1[i] = s2[i] = 1 + (23 << ((CHARBYTES - 1) * 8)) * i % CHAR__MAX;
-
-  s1[len] = align1;
-  s2[len] = align2;
-  s2[len - 1] -= exp_result;
-
   printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
-    do_one_test (impl, s1, s2, len, exp_result);
+    {
+      s1 = (CHAR *) (buf1 + align1);
+      s2 = (CHAR *) (buf2 + align2);
+
+      for (i = 0; i < len; i++)
+	s1[i] = s2[i] = 1 + (23 << ((CHARBYTES - 1) * 8)) * i % CHAR__MAX;
+
+      s1[len] = align1;
+      s2[len] = align2;
+      s2[len - 1] -= exp_result;
+
+      do_one_test (impl, s1, s2, len, exp_result);
+      realloc_bufs ();
+    }
 
   putchar ('\n');
 }