[rtems commit] Remove use ticks for statistics configure option.

Joel Sherril joel at rtems.org
Mon Jun 15 18:20:29 UTC 2015


Module:    rtems
Branch:    master
Commit:    e6b31b27fbe3cd76534db2d4fc4ef5dcdf0d33b4
Changeset: http://git.rtems.org/rtems/commit/?id=e6b31b27fbe3cd76534db2d4fc4ef5dcdf0d33b4

Author:    Joel Sherrill <joel.sherrill at oarcorp.com>
Date:      Wed May 27 10:13:58 2015 -0500

Remove use ticks for statistics configure option.

This was obsolete and broken based upon recent time keeping changes.

Thie build option was previously enabled by adding
USE_TICKS_FOR_STATISTICS=1 to the configure command line.

This propagated into the code as preprocessor conditionals
using the __RTEMS_USE_TICKS_FOR_STATISTICS__ conditional.

---

 cpukit/configure.ac                            |  5 --
 cpukit/libcsupport/src/__times.c               | 68 +++++++++----------
 cpukit/libmisc/cpuuse/cpuusagedata.c           |  6 +-
 cpukit/libmisc/cpuuse/cpuusagereport.c         | 90 +++++---------------------
 cpukit/libmisc/cpuuse/cpuusagereset.c          | 26 +++-----
 cpukit/libmisc/cpuuse/cpuusagetop.c            | 35 ++--------
 cpukit/libmisc/cpuuse/cpuuse.h                 | 10 +--
 cpukit/rtems/include/rtems/rtems/ratemon.h     | 16 ++---
 cpukit/rtems/include/rtems/rtems/ratemonimpl.h | 52 ++++++---------
 cpukit/rtems/include/rtems/rtems/types.h       |  6 +-
 cpukit/rtems/src/ratemongetstatistics.c        | 21 ++----
 cpukit/rtems/src/ratemongetstatus.c            | 32 +++------
 cpukit/rtems/src/ratemonperiod.c               | 73 ++++++++-------------
 cpukit/rtems/src/ratemonreportstatistics.c     | 65 ++++---------------
 cpukit/score/include/rtems/score/thread.h      |  8 +--
 cpukit/score/src/schedulerdefaulttick.c        |  7 --
 cpukit/score/src/threaddispatch.c              | 15 ++---
 cpukit/score/src/threadinitialize.c            |  6 +-
 testsuites/sptests/sp69/init.c                 | 64 +++++++-----------
 19 files changed, 169 insertions(+), 436 deletions(-)

diff --git a/cpukit/configure.ac b/cpukit/configure.ac
index 46942c9..c2b8e8d 100644
--- a/cpukit/configure.ac
+++ b/cpukit/configure.ac
@@ -240,11 +240,6 @@ RTEMS_CPUOPT([RTEMS_VERSION],
   ["]_RTEMS_VERSION["],
   [RTEMS version string])
 
-RTEMS_CPUOPT([__RTEMS_USE_TICKS_FOR_STATISTICS__],
-  [test x"${USE_TICKS_FOR_STATISTICS}" = x"1"],
-  [1],
-  [disable nanosecond granularity for statistics])
-
 ## Header file differences that need to be known in .h after install
 RTEMS_CPUOPT([__RTEMS_HAVE_SYS_CPUSET_H__],
   [test x"${ac_cv_header_sys_cpuset_h}" = x"yes"],
diff --git a/cpukit/libcsupport/src/__times.c b/cpukit/libcsupport/src/__times.c
index 895ee6b..e5ec411 100644
--- a/cpukit/libcsupport/src/__times.c
+++ b/cpukit/libcsupport/src/__times.c
@@ -31,9 +31,7 @@
 #include <errno.h>
 #include <rtems/seterr.h>
 #include <rtems/score/todimpl.h>
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #include <rtems/score/timestamp.h>
-#endif
+#include <rtems/score/timestamp.h>
 #include <rtems/score/threadimpl.h>
 
 /**
@@ -63,41 +61,35 @@ clock_t _times(
    *  of ticks since boot and the number of ticks executed by this
    *  this thread.
    */
-
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    {
-      Timestamp_Control  per_tick;
-      uint32_t           ticks_of_executing;
-      uint32_t           fractional_ticks;
-      Per_CPU_Control   *cpu_self;
-
-      _Timestamp_Set(
-        &per_tick,
-        rtems_configuration_get_microseconds_per_tick() /
-            TOD_MICROSECONDS_PER_SECOND,
-        (rtems_configuration_get_nanoseconds_per_tick() %
-            TOD_NANOSECONDS_PER_SECOND)
-      );
-
-      cpu_self = _Thread_Dispatch_disable();
-      executing = _Thread_Executing;
-      _Thread_Update_cpu_time_used(
-        executing,
-        &_Thread_Time_of_last_context_switch
-      );
-      _Timestamp_Divide(
-        &executing->cpu_time_used,
-        &per_tick,
-        &ticks_of_executing,
-        &fractional_ticks
-      );
-      _Thread_Dispatch_enable( cpu_self );
-      ptms->tms_utime = ticks_of_executing * us_per_tick;
-    }
-  #else
-    executing = _Thread_Get_executing();
-    ptms->tms_utime  = executing->cpu_time_used * us_per_tick;
-  #endif
+  {
+    Timestamp_Control  per_tick;
+    uint32_t           ticks_of_executing;
+    uint32_t           fractional_ticks;
+    Per_CPU_Control   *cpu_self;
+
+    _Timestamp_Set(
+      &per_tick,
+      rtems_configuration_get_microseconds_per_tick() /
+	  TOD_MICROSECONDS_PER_SECOND,
+      (rtems_configuration_get_nanoseconds_per_tick() %
+	  TOD_NANOSECONDS_PER_SECOND)
+    );
+
+    cpu_self = _Thread_Dispatch_disable();
+    executing = _Thread_Executing;
+    _Thread_Update_cpu_time_used(
+      executing,
+      &_Thread_Time_of_last_context_switch
+    );
+    _Timestamp_Divide(
+      &executing->cpu_time_used,
+      &per_tick,
+      &ticks_of_executing,
+      &fractional_ticks
+    );
+    _Thread_Dispatch_enable( cpu_self );
+    ptms->tms_utime = ticks_of_executing * us_per_tick;
+  }
   ptms->tms_stime  = ticks * us_per_tick;
   ptms->tms_cutime = 0;
   ptms->tms_cstime = 0;
diff --git a/cpukit/libmisc/cpuuse/cpuusagedata.c b/cpukit/libmisc/cpuuse/cpuusagedata.c
index ea24db5..661b97e 100644
--- a/cpukit/libmisc/cpuuse/cpuusagedata.c
+++ b/cpukit/libmisc/cpuuse/cpuusagedata.c
@@ -22,8 +22,4 @@
 
 #include <rtems/cpuuse.h>
 
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  Timestamp_Control  CPU_usage_Uptime_at_last_reset;
-#else
-  uint32_t           CPU_usage_Ticks_at_last_reset;
-#endif
+Timestamp_Control  CPU_usage_Uptime_at_last_reset;
diff --git a/cpukit/libmisc/cpuuse/cpuusagereport.c b/cpukit/libmisc/cpuuse/cpuusagereport.c
index 5cba819..98b5f8b 100644
--- a/cpukit/libmisc/cpuuse/cpuusagereport.c
+++ b/cpukit/libmisc/cpuuse/cpuusagereport.c
@@ -44,12 +44,8 @@ void rtems_cpu_usage_report_with_plugin(
   Objects_Information *information;
   char                 name[13];
   uint32_t             ival, fval;
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    Timestamp_Control  uptime, total, ran, uptime_at_last_reset;
-    uint32_t seconds, nanoseconds;
-  #else
-    uint32_t           total_units = 0;
-  #endif
+  Timestamp_Control  uptime, total, ran, uptime_at_last_reset;
+  uint32_t seconds, nanoseconds;
 
   if ( !print )
     return;
@@ -59,38 +55,15 @@ void rtems_cpu_usage_report_with_plugin(
    *  the number of "ticks" we gave credit for to give the user a rough
    *  guideline as to what each number means proportionally.
    */
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    _Timestamp_Set_to_zero( &total );
-    uptime_at_last_reset = CPU_usage_Uptime_at_last_reset;
-  #else
-    for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
-      #if !defined(RTEMS_POSIX_API) || defined(RTEMS_DEBUG)
-        if ( !_Objects_Information_table[ api_index ] )
-          continue;
-      #endif
-
-      information = _Objects_Information_table[ api_index ][ 1 ];
-      if ( information ) {
-        for ( i=1 ; i <= information->maximum ; i++ ) {
-          the_thread = (Thread_Control *)information->local_table[ i ];
-
-          if ( the_thread )
-            total_units += the_thread->cpu_time_used;
-        }
-      }
-    }
-  #endif
+  _Timestamp_Set_to_zero( &total );
+  uptime_at_last_reset = CPU_usage_Uptime_at_last_reset;
 
   (*print)(
      context,
      "-------------------------------------------------------------------------------\n"
      "                              CPU USAGE BY THREAD\n"
      "------------+----------------------------------------+---------------+---------\n"
-     #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-       " ID         | NAME                                   | SECONDS       | PERCENT\n"
-     #else
-       " ID         | NAME                                   | TICKS         | PERCENT\n"
-     #endif
+     " ID         | NAME                                   | SECONDS       | PERCENT\n"
      "------------+----------------------------------------+---------------+---------\n"
   );
 
@@ -117,7 +90,6 @@ void rtems_cpu_usage_report_with_plugin(
           name
         );
 
-        #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
         {
           Timestamp_Control last;
 
@@ -150,52 +122,20 @@ void rtems_cpu_usage_report_with_plugin(
             ival, fval
           );
         }
-        #else
-         if (total_units) {
-            uint64_t ival_64;
-
-            ival_64 = the_thread->cpu_time_used;
-            ival_64 *= 100000;
-            ival = ival_64 / total_units;
-          } else {
-            ival = 0;
-          }
-
-          fval = ival % 1000;
-          ival /= 1000;
-          (*print)( context,
-            "%14" PRIu32 " |%4" PRIu32 ".%03" PRIu32 "\n",
-            the_thread->cpu_time_used,
-            ival,
-            fval
-          );
-        #endif
       }
     }
   }
 
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    seconds = _Timestamp_Get_seconds( &total );
-    nanoseconds = _Timestamp_Get_nanoseconds( &total ) /
-      TOD_NANOSECONDS_PER_MICROSECOND;
-    (*print)(
-       context,
-       "------------+----------------------------------------+---------------+---------\n"
-       " TIME SINCE LAST CPU USAGE RESET IN SECONDS:                    %7" PRIu32 ".%06" PRIu32 "\n"
-       "-------------------------------------------------------------------------------\n",
-       seconds, nanoseconds
-    );
-  #else
-    (*print)(
-       context,
-       "------------+----------------------------------------+---------------+---------\n"
-       " TICKS SINCE LAST SYSTEM RESET:                                 %14" PRIu32 "\n"
-       " TOTAL UNITS:                                                   %14" PRIu32 "\n"
-       "-------------------------------------------------------------------------------\n",
-       _Watchdog_Ticks_since_boot - CPU_usage_Ticks_at_last_reset,
-       total_units
-    );
-  #endif
+  seconds = _Timestamp_Get_seconds( &total );
+  nanoseconds = _Timestamp_Get_nanoseconds( &total ) /
+    TOD_NANOSECONDS_PER_MICROSECOND;
+  (*print)(
+     context,
+     "------------+----------------------------------------+---------------+---------\n"
+     " TIME SINCE LAST CPU USAGE RESET IN SECONDS:                    %7" PRIu32 ".%06" PRIu32 "\n"
+     "-------------------------------------------------------------------------------\n",
+     seconds, nanoseconds
+  );
 }
 
 void rtems_cpu_usage_report( void )
diff --git a/cpukit/libmisc/cpuuse/cpuusagereset.c b/cpukit/libmisc/cpuuse/cpuusagereset.c
index a167e85..e6c429e 100644
--- a/cpukit/libmisc/cpuuse/cpuusagereset.c
+++ b/cpukit/libmisc/cpuuse/cpuusagereset.c
@@ -27,11 +27,7 @@ static void CPU_usage_Per_thread_handler(
   Thread_Control *the_thread
 )
 {
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    _Timestamp_Set_to_zero( &the_thread->cpu_time_used );
-  #else
-    the_thread->cpu_time_used = 0;
-  #endif
+  _Timestamp_Set_to_zero( &the_thread->cpu_time_used );
 }
 
 /*
@@ -39,21 +35,17 @@ static void CPU_usage_Per_thread_handler(
  */
 void rtems_cpu_usage_reset( void )
 {
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    uint32_t cpu_count;
-    uint32_t cpu_index;
+  uint32_t cpu_count;
+  uint32_t cpu_index;
 
-    _TOD_Get_uptime( &CPU_usage_Uptime_at_last_reset );
+  _TOD_Get_uptime( &CPU_usage_Uptime_at_last_reset );
 
-    cpu_count = rtems_get_processor_count();
-    for ( cpu_index = 0 ; cpu_index < cpu_count ; ++cpu_index ) {
-      Per_CPU_Control *cpu = _Per_CPU_Get_by_index( cpu_index );
+  cpu_count = rtems_get_processor_count();
+  for ( cpu_index = 0 ; cpu_index < cpu_count ; ++cpu_index ) {
+    Per_CPU_Control *cpu = _Per_CPU_Get_by_index( cpu_index );
 
-      cpu->time_of_last_context_switch = CPU_usage_Uptime_at_last_reset;
-    }
-  #else
-    CPU_usage_Ticks_at_last_reset = _Watchdog_Ticks_since_boot;
-  #endif
+    cpu->time_of_last_context_switch = CPU_usage_Uptime_at_last_reset;
+  }
 
   rtems_iterate_over_all_threads(CPU_usage_Per_thread_handler);
 }
diff --git a/cpukit/libmisc/cpuuse/cpuusagetop.c b/cpukit/libmisc/cpuuse/cpuusagetop.c
index e4a47fe..eaa192a 100644
--- a/cpukit/libmisc/cpuuse/cpuusagetop.c
+++ b/cpukit/libmisc/cpuuse/cpuusagetop.c
@@ -144,31 +144,14 @@ static inline bool less_than_uint32_t( uint32_t * lhs, uint32_t * rhs )
     return false;
 }
 
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #define CPU_usage_Equal_to( _lhs, _rhs ) \
-          _Timestamp_Equal_to( _lhs, _rhs )
-#else
-  #define CPU_usage_Equal_to( _lhs, _rhs ) \
-          equal_to_uint32_t( _lhs, _rhs )
-#endif
+#define CPU_usage_Equal_to( _lhs, _rhs ) \
+	_Timestamp_Equal_to( _lhs, _rhs )
 
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #define CPU_usage_Set_to_zero( _time ) \
-         _Timestamp_Set_to_zero( _time )
-#else
-  #define CPU_usage_Set_to_zero( _time ) \
-       do { \
-         *_time = 0; \
-       } while (0)
-#endif
+#define CPU_usage_Set_to_zero( _time ) \
+       _Timestamp_Set_to_zero( _time )
 
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #define CPU_usage_Less_than( _lhs, _rhs ) \
-        _Timestamp_Less_than( _lhs, _rhs )
-#else
-  #define CPU_usage_Less_than( _lhs, _rhs ) \
-         less_than_uint32_t( _lhs, _rhs )
-#endif
+#define CPU_usage_Less_than( _lhs, _rhs ) \
+      _Timestamp_Less_than( _lhs, _rhs )
 
 static void
 print_memsize(rtems_cpu_usage_data* data, const uint32_t size, const char* label)
@@ -581,11 +564,6 @@ void rtems_cpu_usage_top_with_plugin(
   rtems_printk_plugin_t  print
 )
 {
-#ifdef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  if ( !print )
-    return;
-  (*print)(context, "error: tick kernels not supported\n");
-#else
   rtems_status_code      sc;
   rtems_task_priority    priority;
   rtems_name             name;
@@ -714,7 +692,6 @@ void rtems_cpu_usage_top_with_plugin(
       rtems_event_send(id, RTEMS_EVENT_1);
     }
   }
-#endif
 }
 
 void rtems_cpu_usage_top( void )
diff --git a/cpukit/libmisc/cpuuse/cpuuse.h b/cpukit/libmisc/cpuuse/cpuuse.h
index 662d905..1e26019 100644
--- a/cpukit/libmisc/cpuuse/cpuuse.h
+++ b/cpukit/libmisc/cpuuse/cpuuse.h
@@ -25,9 +25,7 @@
 #include <rtems.h>
 #include <rtems/bspIo.h>
 
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #include <rtems/score/timestamp.h>
-#endif
+#include <rtems/score/timestamp.h>
 
 /**
  *  @defgroup libmisc_cpuuse CPU Usage
@@ -39,11 +37,7 @@
 extern "C" {
 #endif
 
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  extern Timestamp_Control  CPU_usage_Uptime_at_last_reset;
-#else
-  extern uint32_t           CPU_usage_Ticks_at_last_reset;
-#endif
+extern Timestamp_Control  CPU_usage_Uptime_at_last_reset;
 
 /*
  * rtems_cpu_usage_report_with_handler
diff --git a/cpukit/rtems/include/rtems/rtems/ratemon.h b/cpukit/rtems/include/rtems/rtems/ratemon.h
index 8701639..3f8ed8b 100644
--- a/cpukit/rtems/include/rtems/rtems/ratemon.h
+++ b/cpukit/rtems/include/rtems/rtems/ratemon.h
@@ -62,25 +62,17 @@ extern "C" {
  *  This is the public type used for the rate monotonic timing
  *  statistics.
  */
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #include <rtems/score/timespec.h>
+#include <rtems/score/timespec.h>
 
-  typedef struct timespec rtems_rate_monotonic_period_time_t;
-#else
-  typedef uint32_t rtems_rate_monotonic_period_time_t;
-#endif
+typedef struct timespec rtems_rate_monotonic_period_time_t;
 
 /**
  *  This is the internal type used for the rate monotonic timing
  *  statistics.
  */
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #include <rtems/score/timestamp.h>
+#include <rtems/score/timestamp.h>
 
-  typedef Timestamp_Control Rate_monotonic_Period_time_t;
-#else
-  typedef uint32_t Rate_monotonic_Period_time_t;
-#endif
+typedef Timestamp_Control Rate_monotonic_Period_time_t;
 
 /**
  *  The following enumerated type defines the states in which a
diff --git a/cpukit/rtems/include/rtems/rtems/ratemonimpl.h b/cpukit/rtems/include/rtems/rtems/ratemonimpl.h
index 1489e57..b3aa1cf 100644
--- a/cpukit/rtems/include/rtems/rtems/ratemonimpl.h
+++ b/cpukit/rtems/include/rtems/rtems/ratemonimpl.h
@@ -201,46 +201,30 @@ void _Rate_monotonic_Initiate_statistics(
  *
  *  This method resets the statistics information for a period instance.
  */
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #define _Rate_monotonic_Reset_wall_time_statistics( _the_period ) \
-     do { \
-        /* set the minimums to a large value */ \
-        _Timestamp_Set( \
-          &(_the_period)->Statistics.min_wall_time, \
-          0x7fffffff, \
-          0x7fffffff \
-        ); \
-     } while (0)
-#else
-  #define _Rate_monotonic_Reset_wall_time_statistics( _the_period ) \
-     do { \
-        /* set the minimum to a large value */ \
-        (_the_period)->Statistics.min_wall_time = 0xffffffff; \
-     } while (0)
-#endif
+#define _Rate_monotonic_Reset_wall_time_statistics( _the_period ) \
+   do { \
+      /* set the minimums to a large value */ \
+      _Timestamp_Set( \
+	&(_the_period)->Statistics.min_wall_time, \
+	0x7fffffff, \
+	0x7fffffff \
+      ); \
+   } while (0)
 
 /**
  *  @brief Rate_monotonic_Reset_cpu_use_statistics
  *
  *  This helper method resets the period CPU usage statistics structure.
  */
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #define _Rate_monotonic_Reset_cpu_use_statistics( _the_period ) \
-     do { \
-        /* set the minimums to a large value */ \
-        _Timestamp_Set( \
-          &(_the_period)->Statistics.min_cpu_time, \
-          0x7fffffff, \
-          0x7fffffff \
-        ); \
-     } while (0)
-#else
-  #define _Rate_monotonic_Reset_cpu_use_statistics( _the_period ) \
-     do { \
-        /* set the minimum to a large value */ \
-        (_the_period)->Statistics.min_cpu_time = 0xffffffff; \
-     } while (0)
-#endif
+#define _Rate_monotonic_Reset_cpu_use_statistics( _the_period ) \
+   do { \
+      /* set the minimums to a large value */ \
+      _Timestamp_Set( \
+	&(_the_period)->Statistics.min_cpu_time, \
+	0x7fffffff, \
+	0x7fffffff \
+      ); \
+   } while (0)
 
 /**
  *  @brief Rate_monotonic_Reset_statistics
diff --git a/cpukit/rtems/include/rtems/rtems/types.h b/cpukit/rtems/include/rtems/rtems/types.h
index fb88116..9789476 100644
--- a/cpukit/rtems/include/rtems/rtems/types.h
+++ b/cpukit/rtems/include/rtems/rtems/types.h
@@ -124,11 +124,7 @@ typedef Watchdog_Interval rtems_interval;
  * When using nanoseconds granularity timing, RTEMS may internally use a
  * variety of representations.
  */
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  typedef struct timespec rtems_thread_cpu_usage_t;
-#else
-  typedef uint32_t rtems_thread_cpu_usage_t;
-#endif
+typedef struct timespec rtems_thread_cpu_usage_t;
 
 /**
  * @brief Data structure to manage and manipulate calendar
diff --git a/cpukit/rtems/src/ratemongetstatistics.c b/cpukit/rtems/src/ratemongetstatistics.c
index d106f04..6644562 100644
--- a/cpukit/rtems/src/ratemongetstatistics.c
+++ b/cpukit/rtems/src/ratemongetstatistics.c
@@ -46,21 +46,12 @@ rtems_status_code rtems_rate_monotonic_get_statistics(
       src = &the_period->Statistics;
       dst->count        = src->count;
       dst->missed_count = src->missed_count;
-      #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-        _Timestamp_To_timespec( &src->min_cpu_time,   &dst->min_cpu_time );
-        _Timestamp_To_timespec( &src->max_cpu_time,   &dst->max_cpu_time );
-        _Timestamp_To_timespec( &src->total_cpu_time, &dst->total_cpu_time );
-        _Timestamp_To_timespec( &src->min_wall_time,   &dst->min_wall_time );
-        _Timestamp_To_timespec( &src->max_wall_time,   &dst->max_wall_time );
-        _Timestamp_To_timespec( &src->total_wall_time, &dst->total_wall_time );
-      #else
-        dst->min_cpu_time    = src->min_cpu_time;
-        dst->max_cpu_time    = src->max_cpu_time;
-        dst->total_cpu_time  = src->total_cpu_time;
-        dst->min_wall_time   = src->min_wall_time;
-        dst->max_wall_time   = src->max_wall_time;
-        dst->total_wall_time = src->total_wall_time;
-      #endif
+      _Timestamp_To_timespec( &src->min_cpu_time,   &dst->min_cpu_time );
+      _Timestamp_To_timespec( &src->max_cpu_time,   &dst->max_cpu_time );
+      _Timestamp_To_timespec( &src->total_cpu_time, &dst->total_cpu_time );
+      _Timestamp_To_timespec( &src->min_wall_time,   &dst->min_wall_time );
+      _Timestamp_To_timespec( &src->max_wall_time,   &dst->max_wall_time );
+      _Timestamp_To_timespec( &src->total_wall_time, &dst->total_wall_time );
 
       _Objects_Put( &the_period->Object );
       return RTEMS_SUCCESSFUL;
diff --git a/cpukit/rtems/src/ratemongetstatus.c b/cpukit/rtems/src/ratemongetstatus.c
index 37d524d..b61e234 100644
--- a/cpukit/rtems/src/ratemongetstatus.c
+++ b/cpukit/rtems/src/ratemongetstatus.c
@@ -24,10 +24,7 @@
 #include <rtems/score/isr.h>
 #include <rtems/rtems/ratemonimpl.h>
 #include <rtems/score/thread.h>
-
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #include <rtems/score/timespec.h>
-#endif
+#include <rtems/score/timespec.h>
 
 rtems_status_code rtems_rate_monotonic_get_status(
   rtems_id                            id,
@@ -54,14 +51,8 @@ rtems_status_code rtems_rate_monotonic_get_status(
        *  If the period is inactive, there is no information.
        */
       if ( status->state == RATE_MONOTONIC_INACTIVE ) {
-        #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-          _Timespec_Set_to_zero( &status->since_last_period );
-          _Timespec_Set_to_zero( &status->executed_since_last_period );
-        #else
-          status->since_last_period = 0;
-          status->executed_since_last_period = 0;
-        #endif
-
+	_Timespec_Set_to_zero( &status->since_last_period );
+	_Timespec_Set_to_zero( &status->executed_since_last_period );
       } else {
 
         /*
@@ -76,17 +67,12 @@ rtems_status_code rtems_rate_monotonic_get_status(
           return RTEMS_NOT_DEFINED;
         }
 
-        #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-          _Timestamp_To_timespec(
-            &since_last_period, &status->since_last_period
-          );
-          _Timestamp_To_timespec(
-            &executed, &status->executed_since_last_period
-          );
-        #else
-          status->since_last_period = since_last_period;
-          status->executed_since_last_period = executed;
-        #endif
+	_Timestamp_To_timespec(
+	  &since_last_period, &status->since_last_period
+	);
+	_Timestamp_To_timespec(
+	  &executed, &status->executed_since_last_period
+	);
       }
 
       _Objects_Put( &the_period->Object );
diff --git a/cpukit/rtems/src/ratemonperiod.c b/cpukit/rtems/src/ratemonperiod.c
index ca278fb..6aefaba 100644
--- a/cpukit/rtems/src/ratemonperiod.c
+++ b/cpukit/rtems/src/ratemonperiod.c
@@ -30,67 +30,50 @@ bool _Rate_monotonic_Get_status(
   Thread_CPU_usage_t            *cpu_since_last_period
 )
 {
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    Timestamp_Control        uptime;
-  #endif
-    Thread_Control          *owning_thread = the_period->owner;
-    Thread_CPU_usage_t       used;
+  Timestamp_Control        uptime;
+  Thread_Control          *owning_thread = the_period->owner;
+  Thread_CPU_usage_t       used;
 
   /*
    *  Determine elapsed wall time since period initiated.
    */
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    _TOD_Get_uptime( &uptime );
-    _Timestamp_Subtract(
-      &the_period->time_period_initiated, &uptime, wall_since_last_period
-    );
-  #else
-    *wall_since_last_period =
-      _Watchdog_Ticks_since_boot - the_period->time_period_initiated;
-  #endif
+  _TOD_Get_uptime( &uptime );
+  _Timestamp_Subtract(
+    &the_period->time_period_initiated, &uptime, wall_since_last_period
+  );
 
   /*
    *  Determine cpu usage since period initiated.
    */
   used = owning_thread->cpu_time_used;
 
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    if (owning_thread == _Thread_Executing) {
+  if (owning_thread == _Thread_Executing) {
 
-      Thread_CPU_usage_t ran;
+    Thread_CPU_usage_t ran;
 
-      /* How much time time since last context switch */
-      _Timestamp_Subtract(
-        &_Thread_Time_of_last_context_switch, &uptime, &ran
-      );
+    /* How much time time since last context switch */
+    _Timestamp_Subtract(
+      &_Thread_Time_of_last_context_switch, &uptime, &ran
+    );
 
-      /* cpu usage += ran */
-      _Timestamp_Add_to( &used, &ran );
+    /* cpu usage += ran */
+    _Timestamp_Add_to( &used, &ran );
 
-      /*
-       *  The cpu usage info was reset while executing.  Can't
-       *  determine a status.
-       */
-      if (_Timestamp_Less_than(&used, &the_period->cpu_usage_period_initiated))
-        return false;
+    /*
+     *  The cpu usage info was reset while executing.  Can't
+     *  determine a status.
+     */
+    if (_Timestamp_Less_than(&used, &the_period->cpu_usage_period_initiated))
+      return false;
 
-       /* used = current cpu usage - cpu usage at start of period */
-      _Timestamp_Subtract(
-         &the_period->cpu_usage_period_initiated,
-         &used,
-         cpu_since_last_period
-      );
-    }
-  #else
-      /*
-       *  The cpu usage info was reset while executing.  Can't
-       *  determine a status.
-       */
-      if (used < the_period->cpu_usage_period_initiated)
-        return false;
+     /* used = current cpu usage - cpu usage at start of period */
+    _Timestamp_Subtract(
+       &the_period->cpu_usage_period_initiated,
+       &used,
+       cpu_since_last_period
+    );
+  }
 
-      *cpu_since_last_period = used - the_period->cpu_usage_period_initiated;
-  #endif
   return true;
 }
 
diff --git a/cpukit/rtems/src/ratemonreportstatistics.c b/cpukit/rtems/src/ratemonreportstatistics.c
index 0b1a320..856d431 100644
--- a/cpukit/rtems/src/ratemonreportstatistics.c
+++ b/cpukit/rtems/src/ratemonreportstatistics.c
@@ -23,12 +23,10 @@
 
 #include <inttypes.h>
 
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  /* We print to 1/10's of milliseconds */
-  #define NANOSECONDS_DIVIDER 1000
-  #define PERCENT_FMT     "%04" PRId32
-  #define NANOSECONDS_FMT "%06" PRId32
-#endif
+/* We print to 1/10's of milliseconds */
+#define NANOSECONDS_DIVIDER 1000
+#define PERCENT_FMT     "%04" PRId32
+#define NANOSECONDS_FMT "%06" PRId32
 
 void rtems_rate_monotonic_report_statistics_with_plugin(
   void                  *context,
@@ -45,10 +43,8 @@ void rtems_rate_monotonic_report_statistics_with_plugin(
     return;
 
   (*print)( context, "Period information by period\n" );
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    (*print)( context, "--- CPU times are in seconds ---\n" );
-    (*print)( context, "--- Wall times are in seconds ---\n" );
-  #endif
+  (*print)( context, "--- CPU times are in seconds ---\n" );
+  (*print)( context, "--- Wall times are in seconds ---\n" );
 /*
 Layout by columns -- in memory of Hollerith :)
 
@@ -62,25 +58,11 @@ ididididid NNNN ccccc mmmmmm X
 1234567890123456789012345678901234567890123456789012345678901234567890123456789\
 \n");
 */
-  (*print)( context, "   ID     OWNER COUNT MISSED     "
-       #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-          "     "
-       #endif
-          "CPU TIME     "
-       #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-          "          "
-       #endif
-          "   WALL TIME\n"
-  );
-  (*print)( context, "                               "
-       #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-          "     "
-       #endif
-          "MIN/MAX/AVG    "
-       #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-          "          "
-       #endif
-          "  MIN/MAX/AVG\n"
+  (*print)( context,
+      "   ID     OWNER COUNT MISSED     "
+      "     CPU TIME                  WALL TIME\n"
+      "                               "
+      "     MIN/MAX/AVG                MIN/MAX/AVG\n"
   );
 
   /*
@@ -126,7 +108,6 @@ ididididid NNNN ccccc mmmmmm X
      *  print CPU Usage part of statistics
      */
     {
-    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
       struct timespec  cpu_average;
       struct timespec *min_cpu = &the_stats.min_cpu_time;
       struct timespec *max_cpu = &the_stats.max_cpu_time;
@@ -144,25 +125,12 @@ ididididid NNNN ccccc mmmmmm X
         _Timespec_Get_seconds( &cpu_average ),
 	  _Timespec_Get_nanoseconds( &cpu_average ) / NANOSECONDS_DIVIDER
        );
-    #else
-      uint32_t ival_cpu, fval_cpu;
-
-      ival_cpu = the_stats.total_cpu_time * 100 / the_stats.count;
-      fval_cpu = ival_cpu % 100;
-      ival_cpu /= 100;
-
-      (*print)( context,
-        "%3" PRId32 "/%4" PRId32 "/%3" PRId32 ".%02" PRId32 " ",
-        the_stats.min_cpu_time, the_stats.max_cpu_time, ival_cpu, fval_cpu
-      );
-    #endif
     }
 
     /*
      *  print wall time part of statistics
      */
     {
-    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
       struct timespec  wall_average;
       struct timespec *min_wall = &the_stats.min_wall_time;
       struct timespec *max_wall = &the_stats.max_wall_time;
@@ -180,17 +148,6 @@ ididididid NNNN ccccc mmmmmm X
         _Timespec_Get_seconds( &wall_average ),
           _Timespec_Get_nanoseconds( &wall_average ) / NANOSECONDS_DIVIDER
       );
-    #else
-      uint32_t  ival_wall, fval_wall;
-
-      ival_wall = the_stats.total_wall_time * 100 / the_stats.count;
-      fval_wall = ival_wall % 100;
-      ival_wall /= 100;
-      (*print)( context,
-        "%3" PRId32 "/%4" PRId32 "/%3" PRId32 ".%02" PRId32 "\n",
-        the_stats.min_wall_time, the_stats.max_wall_time, ival_wall, fval_wall
-      );
-    #endif
     }
   }
 }
diff --git a/cpukit/score/include/rtems/score/thread.h b/cpukit/score/include/rtems/score/thread.h
index c69646b..05c1ff7 100644
--- a/cpukit/score/include/rtems/score/thread.h
+++ b/cpukit/score/include/rtems/score/thread.h
@@ -83,13 +83,9 @@ extern "C" {
  *  The user can define this at configure time and go back to ticks
  *  resolution.
  */
-#ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-  #include <rtems/score/timestamp.h>
+#include <rtems/score/timestamp.h>
 
-  typedef Timestamp_Control Thread_CPU_usage_t;
-#else
-  typedef uint32_t Thread_CPU_usage_t;
-#endif
+typedef Timestamp_Control Thread_CPU_usage_t;
 
 /**
  *  The following defines the "return type" of a thread.
diff --git a/cpukit/score/src/schedulerdefaulttick.c b/cpukit/score/src/schedulerdefaulttick.c
index db67ca1..19acd3b 100644
--- a/cpukit/score/src/schedulerdefaulttick.c
+++ b/cpukit/score/src/schedulerdefaulttick.c
@@ -31,13 +31,6 @@ void _Scheduler_default_Tick(
 {
   (void) scheduler;
 
-  #ifdef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    /*
-     *  Increment the number of ticks this thread has been executing
-     */
-    executing->cpu_time_used++;
-  #endif
-
   /*
    *  If the thread is not preemptible or is not ready, then
    *  just return.
diff --git a/cpukit/score/src/threaddispatch.c b/cpukit/score/src/threaddispatch.c
index f20f427..cce3aff 100644
--- a/cpukit/score/src/threaddispatch.c
+++ b/cpukit/score/src/threaddispatch.c
@@ -99,17 +99,10 @@ void _Thread_Do_dispatch( Per_CPU_Control *cpu_self, ISR_Level level )
     _ISR_Enable( level );
 #endif
 
-    #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-      _Thread_Update_cpu_time_used(
-        executing,
-        &cpu_self->time_of_last_context_switch
-      );
-    #else
-      {
-        _TOD_Get_uptime( &cpu_self->time_of_last_context_switch );
-        heir->cpu_time_used++;
-      }
-    #endif
+    _Thread_Update_cpu_time_used(
+      executing,
+      &cpu_self->time_of_last_context_switch
+    );
 
 #if !defined(__DYNAMIC_REENT__)
     /*
diff --git a/cpukit/score/src/threadinitialize.c b/cpukit/score/src/threadinitialize.c
index 3c0a412..c6985f01 100644
--- a/cpukit/score/src/threadinitialize.c
+++ b/cpukit/score/src/threadinitialize.c
@@ -217,11 +217,7 @@ bool _Thread_Initialize(
   /*
    *  Initialize the CPU usage statistics
    */
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    _Timestamp_Set_to_zero( &the_thread->cpu_time_used );
-  #else
-    the_thread->cpu_time_used = 0;
-  #endif
+  _Timestamp_Set_to_zero( &the_thread->cpu_time_used );
 
   /*
    * initialize thread's key vaule node chain
diff --git a/testsuites/sptests/sp69/init.c b/testsuites/sptests/sp69/init.c
index ecc3846..ac6f58c 100644
--- a/testsuites/sptests/sp69/init.c
+++ b/testsuites/sptests/sp69/init.c
@@ -55,15 +55,10 @@ rtems_task Init(
   /* Check status values. */
   rtems_test_assert( period_status.owner == rtems_task_self() );
   rtems_test_assert( period_status.state == RATE_MONOTONIC_INACTIVE );
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
-    rtems_test_assert( period_status.since_last_period.tv_sec == 0 );
-    rtems_test_assert( period_status.since_last_period.tv_nsec == 0 );
-    rtems_test_assert( period_status.executed_since_last_period.tv_sec == 0 );
-    rtems_test_assert( period_status.executed_since_last_period.tv_nsec == 0 );
-  #else
-    rtems_test_assert( period_status.since_last_period == 0 );
-    rtems_test_assert( period_status.executed_since_last_period == 0 );
-  #endif
+  rtems_test_assert( period_status.since_last_period.tv_sec == 0 );
+  rtems_test_assert( period_status.since_last_period.tv_nsec == 0 );
+  rtems_test_assert( period_status.executed_since_last_period.tv_sec == 0 );
+  rtems_test_assert( period_status.executed_since_last_period.tv_nsec == 0 );
 
   /*
    * Check get_status error cases.
@@ -113,40 +108,25 @@ rtems_task Init(
   directive_failed( status, "rate_monotonic_get_status" );
 
   /* Check status values. */
-  #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
   /* Note: POSIX mandates struct timespec->tv_nsec to be a "long" */
-    printf(
-      "wall time should be ~600000000 is %ld\n",
-      period_status.since_last_period.tv_nsec
-    );
-    printf(
-      "cpu time should be ~100000000 is %ld\n",
-      period_status.executed_since_last_period.tv_nsec
-    );
-    rtems_test_assert( period_status.since_last_period.tv_sec == 0 );
-    rtems_test_assert( period_status.since_last_period.tv_nsec >= 600000000 );
-    rtems_test_assert( period_status.since_last_period.tv_nsec <= 610000000 );
-    rtems_test_assert( period_status.executed_since_last_period.tv_sec == 0 );
-    rtems_test_assert(
-      period_status.executed_since_last_period.tv_nsec >= 100000000
-    );
-    rtems_test_assert(
-      period_status.executed_since_last_period.tv_nsec <= 110000000
-    );
-  #else
-    printf(
-      "wall time should be ~60 is %" PRId32 "\n",
-      (int) period_status.since_last_period
-    );
-    printf(
-      "cpu time should be ~10 is %" PRId32 "\n",
-      (int) period_status.executed_since_last_period
-    );
-    rtems_test_assert( period_status.since_last_period >= 60 );
-    rtems_test_assert( period_status.since_last_period <= 61 );
-    rtems_test_assert( period_status.executed_since_last_period >= 10 );
-    rtems_test_assert( period_status.executed_since_last_period <= 12 );
-  #endif
+  printf(
+    "wall time should be ~600000000 is %ld\n",
+    period_status.since_last_period.tv_nsec
+  );
+  printf(
+    "cpu time should be ~100000000 is %ld\n",
+    period_status.executed_since_last_period.tv_nsec
+  );
+  rtems_test_assert( period_status.since_last_period.tv_sec == 0 );
+  rtems_test_assert( period_status.since_last_period.tv_nsec >= 600000000 );
+  rtems_test_assert( period_status.since_last_period.tv_nsec <= 610000000 );
+  rtems_test_assert( period_status.executed_since_last_period.tv_sec == 0 );
+  rtems_test_assert(
+    period_status.executed_since_last_period.tv_nsec >= 100000000
+  );
+  rtems_test_assert(
+    period_status.executed_since_last_period.tv_nsec <= 110000000
+  );
 
   /* ensure the missed periods are properly accounted for */
   puts( "rtems_rate_monotonic_cancel -  OK" );



More information about the vc mailing list