Determine the iteration count based on wallclock instead of user+system time.
authorWei-cheng Wang <cole945@gmail.com>
Thu, 20 Aug 2015 17:32:18 +0000 (01:32 +0800)
committerMarcin Koƛcielnicki <koriakin@0x04.net>
Thu, 18 Feb 2016 19:23:00 +0000 (20:23 +0100)
gdb/testsuite/ChangeLog:

2016-02-18  Wei-cheng Wang  <cole945@gmail.com>

* gdb.trace/tspeed.c (myclock): Return wallclock instead of
user+system time.
(trace_speed_test): Determine the iteration count for a time
between 15..30 seconds.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.trace/tspeed.c

index cedbb75..31f8d38 100644 (file)
@@ -1,3 +1,10 @@
+2016-02-18  Wei-cheng Wang  <cole945@gmail.com>
+
+       * gdb.trace/tspeed.c (myclock): Return wallclock instead of
+       user+system time.
+       (trace_speed_test): Determine the iteration count for a time
+       between 15..30 seconds.
+
 2016-02-18  Walfred Tedeschi  <walfred.tedeschi@intel.com>
 
        * gdb.arch/i386-mpx-sigsegv.c: New file.
index a379411..5746104 100644 (file)
@@ -56,13 +56,9 @@ int nspertp = 0;
 unsigned long long
 myclock ()
 {
-  struct timeval tm, tm2;
-  struct rusage ru;
-  getrusage (RUSAGE_SELF, &ru);
-  tm = ru.ru_utime;
-  tm2 = ru.ru_stime;
-  return (((unsigned long long) tm.tv_sec) * 1000000) + tm.tv_usec
-    + (((unsigned long long) tm2.tv_sec) * 1000000) + tm2.tv_usec;
+  struct timeval tm;
+  gettimeofday (&tm, NULL);
+  return (((unsigned long long) tm.tv_sec) * 1000000) + tm.tv_usec;
 }
 
 int
@@ -162,9 +158,9 @@ trace_speed_test (void)
     return -1;
 
   if (idelta > mindelta
-      /* Total test time should be between 2 and 5 seconds.  */
-      && (total1 + total2) > (2 * 1000000)
-      && (total1 + total2) < (5 * 1000000)) 
+      /* Total test time should be between 15 and 30 seconds.  */
+      && (total1 + total2) > (15 * 1000000)
+      && (total1 + total2) < (30 * 1000000))
     {
       nsdelta = (((unsigned long long) idelta) * 1000) / iters;
       printf ("Second loop took %d ns longer per iter than first\n", nsdelta);