This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.28.9000-24-g014efdd


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  014efdd7ea3c6756d215b9fe51bdbb8ee8bd549b (commit)
      from  92a4cba76076ce1aa0efa7b859708e057c2a757f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=014efdd7ea3c6756d215b9fe51bdbb8ee8bd549b

commit 014efdd7ea3c6756d215b9fe51bdbb8ee8bd549b
Author: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date:   Wed Aug 8 00:44:56 2018 +0530

    benchtests: Clean up the alloc_bufs
    
    Drop realloc_bufs in favour of making alloc_bufs transparently
    reallocate the buffers if it had allocated before.  Also consolidate
    computation of buffer lengths so that they don't get repeated on every
    reallocation.
    
    	* benchtests/bench-string.h (buf1_size, buf2_size): New
    	variables.
    	(init_sizes): New function.
    	(test_init): Use it.
    	(alloc_buf, exit_error): New functions.
    	(alloc_bufs): Use ALLOC_BUF.
    	(realloc_bufs): Remove.
    	* benchtests/bench-memcmp.c (do_test): Adjust.
    	* benchtests/bench-memset-large.c (do_test): Likewise.
    	* benchtests/bench-memset-walk.c (do_test): Likewise.
    	* benchtests/bench-memset.c (do_test): Likewise.
    	* benchtests/bench-strncmp.c (do_test): Likewise.

diff --git a/ChangeLog b/ChangeLog
index c8a1b70..7e1a5b0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2018-08-07  Siddhesh Poyarekar  <siddhesh@sourceware.org>
+
+	* benchtests/bench-string.h (buf1_size, buf2_size): New
+	variables.
+	(init_sizes): New function.
+	(test_init): Use it.
+	(alloc_buf, exit_error): New functions.
+	(alloc_bufs): Use ALLOC_BUF.
+	(realloc_bufs): Remove.
+	* benchtests/bench-memcmp.c (do_test): Adjust.
+	* benchtests/bench-memset-large.c (do_test): Likewise.
+	* benchtests/bench-memset-walk.c (do_test): Likewise.
+	* benchtests/bench-memset.c (do_test): Likewise.
+	* benchtests/bench-strncmp.c (do_test): Likewise.
+
 2018-08-06  Andreas Schwab  <schwab@suse.de>
 
 	* sysdeps/riscv/nptl/tls.h (DB_THREAD_SELF): Use REGISTER instead
diff --git a/benchtests/bench-memcmp.c b/benchtests/bench-memcmp.c
index 69ed9c9..b566f48 100644
--- a/benchtests/bench-memcmp.c
+++ b/benchtests/bench-memcmp.c
@@ -132,7 +132,7 @@ do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len,
       s2[len - 1] -= exp_result;
 
       do_one_test (json_ctx, impl, s1, s2, len, exp_result);
-      realloc_bufs ();
+      alloc_bufs ();
     }
 
   json_array_end (json_ctx);
diff --git a/benchtests/bench-memset-large.c b/benchtests/bench-memset-large.c
index 2482891..1f7bf81 100644
--- a/benchtests/bench-memset-large.c
+++ b/benchtests/bench-memset-large.c
@@ -92,7 +92,7 @@ do_test (json_ctx_t *json_ctx, size_t align, int c, size_t len)
   FOR_EACH_IMPL (impl, 0)
     {
       do_one_test (json_ctx, impl, (CHAR *) (buf1) + align, c, len);
-      realloc_bufs ();
+      alloc_bufs ();
     }
 
   json_array_end (json_ctx);
diff --git a/benchtests/bench-memset-walk.c b/benchtests/bench-memset-walk.c
index 4dcb152..753d6f3 100644
--- a/benchtests/bench-memset-walk.c
+++ b/benchtests/bench-memset-walk.c
@@ -88,7 +88,7 @@ do_test (json_ctx_t *json_ctx, int c, size_t len)
     {
       do_one_test (json_ctx, impl, (CHAR *) buf1,
 		   (CHAR *) buf1 + MIN_PAGE_SIZE - len, c, len);
-      realloc_bufs ();
+      alloc_bufs ();
     }
 
   json_array_end (json_ctx);
diff --git a/benchtests/bench-memset.c b/benchtests/bench-memset.c
index 0ae201d..a47620c 100644
--- a/benchtests/bench-memset.c
+++ b/benchtests/bench-memset.c
@@ -134,7 +134,7 @@ do_test (json_ctx_t *json_ctx, size_t align, int c, size_t len)
   FOR_EACH_IMPL (impl, 0)
     {
       do_one_test (json_ctx, impl, (CHAR *) (buf1) + align, c, len);
-      realloc_bufs ();
+      alloc_bufs ();
     }
 
   json_array_end (json_ctx);
diff --git a/benchtests/bench-string.h b/benchtests/bench-string.h
index 94aaafd..f838998 100644
--- a/benchtests/bench-string.h
+++ b/benchtests/bench-string.h
@@ -76,10 +76,8 @@ extern impl_t __start_impls[], __stop_impls[];
 
 # define INNER_LOOP_ITERS 64
 
-unsigned char *buf1, *buf2;
 int ret, do_srandom;
 unsigned int seed;
-size_t page_size;
 
 # ifndef ITERATIONS
 size_t iterations = 100000;
@@ -182,47 +180,57 @@ static impl_t *impl_array;
 #  define BUF1PAGES 1
 # endif
 
+unsigned char *buf1, *buf2;
+static size_t buf1_size, buf2_size, page_size;
+
 static void
-alloc_bufs (void)
+init_sizes (void)
 {
   page_size = 2 * getpagesize ();
 # ifdef MIN_PAGE_SIZE
   if (page_size < MIN_PAGE_SIZE)
     page_size = MIN_PAGE_SIZE;
 # endif
-  buf1 = mmap (0, (BUF1PAGES + 1) * page_size, PROT_READ | PROT_WRITE,
-	       MAP_PRIVATE | MAP_ANON, -1, 0);
-  if (buf1 == MAP_FAILED)
-    error (EXIT_FAILURE, errno, "mmap failed for buf1");
-  if (mprotect (buf1 + BUF1PAGES * page_size, page_size, PROT_NONE))
-    error (EXIT_FAILURE, errno, "mprotect failed for buf1");
-  buf2 = mmap (0, 2 * page_size, PROT_READ | PROT_WRITE,
-	       MAP_PRIVATE | MAP_ANON, -1, 0);
-  if (buf2 == MAP_FAILED)
-    error (EXIT_FAILURE, errno, "mmap failed for buf2");
-  if (mprotect (buf2 + page_size, page_size, PROT_NONE))
-    error (EXIT_FAILURE, errno, "mprotect failed for buf2");
+
+  buf1_size = BUF1PAGES * page_size;
+  buf2_size = page_size;
+}
+
+static void
+exit_error (const char *id, const char *func)
+{
+  error (EXIT_FAILURE, errno, "%s: %s failed", id, func);
 }
 
+/* Allocate a buffer of size SIZE with a guard page at the end.  */
 static void
-__attribute__ ((unused))
-realloc_bufs (void)
+alloc_buf (const char *id, size_t size, unsigned char **retbuf)
 {
-  int ret = 0;
+  size_t alloc_size = size + page_size;
 
-  if (buf1)
-    ret = munmap (buf1, (BUF1PAGES + 1) * page_size);
+  if (*retbuf != NULL)
+    {
+	int ret = munmap (*retbuf, alloc_size);
+	if (ret != 0)
+	  exit_error (id, "munmap");
+    }
 
-  if (ret != 0)
-    error (EXIT_FAILURE, errno, "munmap failed for buf1");
+  unsigned char *buf = mmap (0, alloc_size, PROT_READ | PROT_WRITE,
+			     MAP_PRIVATE | MAP_ANON, -1, 0);
 
-  if (buf2)
-    ret = munmap (buf2, 2 * page_size);
+  if (buf == MAP_FAILED)
+    exit_error (id, "mmap");
+  if (mprotect (buf + size, page_size, PROT_NONE))
+    exit_error (id, "mprotect");
 
-  if (ret != 0)
-    error (EXIT_FAILURE, errno, "munmap failed for buf2");
+  *retbuf = buf;
+}
 
-  alloc_bufs ();
+static void
+alloc_bufs (void)
+{
+  alloc_buf ("buf1", buf1_size, &buf1);
+  alloc_buf ("buf2", buf2_size, &buf2);
 }
 
 static void
@@ -234,6 +242,7 @@ test_init (void)
 					/ sizeof func_list[0]));
 # endif
 
+  init_sizes ();
   alloc_bufs ();
 
   if (do_srandom)
diff --git a/benchtests/bench-strncmp.c b/benchtests/bench-strncmp.c
index 97dc390..92cf0d2 100644
--- a/benchtests/bench-strncmp.c
+++ b/benchtests/bench-strncmp.c
@@ -150,7 +150,7 @@ do_test_limit (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len,
 
   FOR_EACH_IMPL (impl, 0)
     {
-      realloc_bufs ();
+      alloc_bufs ();
       s1 = (CHAR *) (buf1 + page_size - n * CHARBYTES);
       s2 = (CHAR *) (buf2 + page_size - n * CHARBYTES);
 
@@ -207,7 +207,7 @@ do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len, size_t
 
   FOR_EACH_IMPL (impl, 0)
     {
-      realloc_bufs ();
+      alloc_bufs ();
       s1 = (CHAR *) (buf1 + align1);
       s2 = (CHAR *) (buf2 + align2);
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                       |   15 +++++++++
 benchtests/bench-memcmp.c       |    2 +-
 benchtests/bench-memset-large.c |    2 +-
 benchtests/bench-memset-walk.c  |    2 +-
 benchtests/bench-memset.c       |    2 +-
 benchtests/bench-string.h       |   63 ++++++++++++++++++++++----------------
 benchtests/bench-strncmp.c      |    4 +-
 7 files changed, 57 insertions(+), 33 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]