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-64-g34f86d6


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  34f86d61687457aa57d40cf3c230ca8404d40e45 (commit)
       via  953a5a4a59434ee316a091514e83e249aa25b09d (commit)
      from  7793ad7a2c00434398aa8bb3f5932e2fdf43536a (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=34f86d61687457aa57d40cf3c230ca8404d40e45

commit 34f86d61687457aa57d40cf3c230ca8404d40e45
Author: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date:   Thu Aug 16 14:09:56 2018 +0530

    Reallocate buffers for every run in strlen
    
    Try and avoid influencing performance of neighbouring functions.

diff --git a/ChangeLog b/ChangeLog
index ec444a3..cd60ef8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2018-08-16  Siddhesh Poyarekar  <siddhesh@sourceware.org>
 
+	* benchtests/bench-strlen.c (do_test): Allocate buffers before
+	every strlen call.
+
 	* benchtests/bench-strlen.c: Print performance numbers in json.
 
 2018-08-16  Rajalakshmi Srinivasaraghavan  <raji@linux.vnet.ibm.com>
diff --git a/benchtests/bench-strlen.c b/benchtests/bench-strlen.c
index 6782215..5768494 100644
--- a/benchtests/bench-strlen.c
+++ b/benchtests/bench-strlen.c
@@ -96,12 +96,6 @@ do_test (json_ctx_t *json_ctx, size_t align, size_t len)
   if (align + sizeof(CHAR) * len >= page_size)
     return;
 
-  CHAR *buf = (CHAR *) (buf1);
-
-  for (i = 0; i < len; ++i)
-    buf[align + i] = 1 + 11111 * i % MAX_CHAR;
-  buf[align + len] = 0;
-
   json_element_object_begin (json_ctx);
   json_attr_uint (json_ctx, "length", len);
   json_attr_uint (json_ctx, "alignment", align);
@@ -109,7 +103,16 @@ do_test (json_ctx_t *json_ctx, size_t align, size_t len)
 
 
   FOR_EACH_IMPL (impl, 0)
-    do_one_test (json_ctx, impl, (CHAR *) (buf + align), len);
+    {
+      CHAR *buf = (CHAR *) (buf1);
+
+      for (i = 0; i < len; ++i)
+	buf[align + i] = 1 + 11111 * i % MAX_CHAR;
+      buf[align + len] = 0;
+
+      do_one_test (json_ctx, impl, (CHAR *) (buf + align), len);
+      alloc_bufs ();
+    }
 
   json_array_end (json_ctx);
   json_element_object_end (json_ctx);

http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=953a5a4a59434ee316a091514e83e249aa25b09d

commit 953a5a4a59434ee316a091514e83e249aa25b09d
Author: Siddhesh Poyarekar <siddhesh@sourceware.org>
Date:   Thu Aug 16 13:59:13 2018 +0530

    Print strlen benchmark output in json
    
    Allow reading the benchmark using the compare_strings.py script.

diff --git a/ChangeLog b/ChangeLog
index dedffaa..ec444a3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2018-08-16  Siddhesh Poyarekar  <siddhesh@sourceware.org>
+
+	* benchtests/bench-strlen.c: Print performance numbers in json.
+
 2018-08-16  Rajalakshmi Srinivasaraghavan  <raji@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/powerpc64/multiarch/Makefile
diff --git a/benchtests/bench-strlen.c b/benchtests/bench-strlen.c
index 215b5bb..6782215 100644
--- a/benchtests/bench-strlen.c
+++ b/benchtests/bench-strlen.c
@@ -35,6 +35,8 @@
 # define MAX_CHAR WCHAR_MAX
 #endif
 
+#include "json-lib.h"
+
 typedef size_t (*proto_t) (const CHAR *);
 
 size_t
@@ -60,7 +62,7 @@ IMPL (STRLEN, 1)
 
 
 static void
-do_one_test (impl_t *impl, const CHAR *s, size_t exp_len)
+do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s, size_t exp_len)
 {
   size_t len = CALL (impl, s), i, iters = INNER_LOOP_ITERS;
   timing_t start, stop, cur;
@@ -82,11 +84,11 @@ do_one_test (impl_t *impl, const CHAR *s, size_t exp_len)
 
   TIMING_DIFF (cur, start, stop);
 
-  TIMING_PRINT_MEAN ((double) cur, (double) iters);
+  json_element_double (json_ctx, (double) cur / (double) iters);
 }
 
 static void
-do_test (size_t align, size_t len)
+do_test (json_ctx_t *json_ctx, size_t align, size_t len)
 {
   size_t i;
 
@@ -100,42 +102,63 @@ do_test (size_t align, size_t len)
     buf[align + i] = 1 + 11111 * i % MAX_CHAR;
   buf[align + len] = 0;
 
-  printf ("Length %4zd, alignment %2zd:", len, align);
+  json_element_object_begin (json_ctx);
+  json_attr_uint (json_ctx, "length", len);
+  json_attr_uint (json_ctx, "alignment", align);
+  json_array_begin (json_ctx, "timings");
+
 
   FOR_EACH_IMPL (impl, 0)
-    do_one_test (impl, (CHAR *) (buf + align), len);
+    do_one_test (json_ctx, impl, (CHAR *) (buf + align), len);
 
-  putchar ('\n');
+  json_array_end (json_ctx);
+  json_element_object_end (json_ctx);
 }
 
 int
 test_main (void)
 {
+  json_ctx_t json_ctx;
   size_t i;
 
   test_init ();
 
-  printf ("%20s", "");
+  json_init (&json_ctx, 0, stdout);
+
+  json_document_begin (&json_ctx);
+  json_attr_string (&json_ctx, "timing_type", TIMING_TYPE);
+
+  json_attr_object_begin (&json_ctx, "functions");
+  json_attr_object_begin (&json_ctx, TEST_NAME);
+  json_attr_string (&json_ctx, "bench-variant", "");
+
+  json_array_begin (&json_ctx, "ifuncs");
   FOR_EACH_IMPL (impl, 0)
-    printf ("\t%s", impl->name);
-  putchar ('\n');
+    json_element_string (&json_ctx, impl->name);
+  json_array_end (&json_ctx);
 
+  json_array_begin (&json_ctx, "results");
   /* Checking with only 4 * N alignments for wcslen, other alignments are wrong for wchar_t type arrays*/
 
   for (i = 1; i < 8; ++i)
   {
-    do_test (sizeof(CHAR) * i, i);
-    do_test (0, i);
+    do_test (&json_ctx, sizeof(CHAR) * i, i);
+    do_test (&json_ctx, 0, i);
   }
 
   for (i = 2; i <= 12; ++i)
     {
-      do_test (0, 1 << i);
-      do_test (sizeof(CHAR) * 7, 1 << i);
-      do_test (sizeof(CHAR) * i, 1 << i);
-      do_test (sizeof(CHAR) * i, (size_t)((1 << i) / 1.5));
+      do_test (&json_ctx, 0, 1 << i);
+      do_test (&json_ctx, sizeof(CHAR) * 7, 1 << i);
+      do_test (&json_ctx, sizeof(CHAR) * i, 1 << i);
+      do_test (&json_ctx, sizeof(CHAR) * i, (size_t)((1 << i) / 1.5));
     }
 
+  json_array_end (&json_ctx);
+  json_attr_object_end (&json_ctx);
+  json_attr_object_end (&json_ctx);
+  json_document_end (&json_ctx);
+
   return ret;
 }
 

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

Summary of changes:
 ChangeLog                 |    7 +++++
 benchtests/bench-strlen.c |   66 +++++++++++++++++++++++++++++++-------------
 2 files changed, 53 insertions(+), 20 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]