Are there any comments on this patch? If not, I
am going to push it.

On 5/27/2015 10:16 AM, Joel Sherrill wrote:
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               |   85 +++++++++-------------
  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, 175 insertions(+), 442 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 39fcb17..6f97c69 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 2133d74..d79791b 100644
--- a/cpukit/score/src/threadinitialize.c
+++ b/cpukit/score/src/threadinitialize.c
@@ -216,11 +216,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" );
--
1.7.1


--
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherr...@oarcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to