summaryrefslogtreecommitdiffstats
path: root/cpukit/libmisc/cpuuse/cpuuse.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-05-21 20:28:02 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-05-21 20:28:02 +0000
commite49e84c9abd9a67d92fd12ab18794ed1d809f70c (patch)
tree0dbb7794e3e764fb09123b94d7d2e1d913b60e38 /cpukit/libmisc/cpuuse/cpuuse.c
parent2007-05-21 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-e49e84c9abd9a67d92fd12ab18794ed1d809f70c.tar.bz2
2007-05-21 Joel Sherrill <joel.sherrill@oarcorp.com>
* libmisc/Makefile.am, libmisc/cpuuse/README: Split remaining CPU Usage functionality into multiple files to eliminate unnecessary cohesion. Update README. * libmisc/cpuuse/cpuusagereport.c, libmisc/cpuuse/cpuusagereset.c: New files. * libmisc/cpuuse/cpuuse.c: Removed.
Diffstat (limited to 'cpukit/libmisc/cpuuse/cpuuse.c')
-rw-r--r--cpukit/libmisc/cpuuse/cpuuse.c169
1 files changed, 0 insertions, 169 deletions
diff --git a/cpukit/libmisc/cpuuse/cpuuse.c b/cpukit/libmisc/cpuuse/cpuuse.c
deleted file mode 100644
index cf1b6f2b4d..0000000000
--- a/cpukit/libmisc/cpuuse/cpuuse.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * CPU Usage Reporter
- *
- * COPYRIGHT (c) 1989-2007
- * On-Line Applications Research Corporation (OAR).
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rtems.com/license/LICENSE.
- *
- * $Id$
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <rtems.h>
-
-#include <assert.h>
-#include <string.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <inttypes.h>
-
-#include <rtems/cpuuse.h>
-#include <rtems/bspIo.h>
-
-#if defined(RTEMS_ENABLE_NANOSECOND_RATE_MONOTONIC_STATISTICS) || \
- defined(RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS)
- #include <rtems/score/timespec.h>
-
- /* We print to 1/10's of milliseconds */
- #define NANOSECONDS_DIVIDER 100000
- #define PERCENT_FMT "%04" PRId32
-#endif
-
-#ifndef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- uint32_t CPU_usage_Ticks_at_last_reset;
-#endif
-
-/*PAGE
- *
- * rtems_cpu_usage_report
- */
-
-void rtems_cpu_usage_report( void )
-{
- uint32_t i;
- uint32_t api_index;
- Thread_Control *the_thread;
- Objects_Information *information;
- char name[5];
- uint32_t ival, fval;
- #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- struct timespec uptime;
- #else
- uint32_t total_units = 0;
- #endif
-
- /*
- * When not using nanosecond CPU usage resolution, we have to count
- * the number of "ticks" we gave credit for to give the user a rough
- * guideline as to what each number means proportionally.
- */
- #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- _TOD_Get_uptime( &uptime );
- #else
- for ( api_index = 1 ; api_index <= OBJECTS_APIS_LAST ; api_index++ ) {
- if ( !_Objects_Information_table[ api_index ] )
- continue;
- 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->ticks_executed;
- }
- }
- }
- #endif
-
- printk( "CPU Usage by thread\n"
- " ID NAME TICKS PERCENT\n"
- );
-
- for ( api_index = 1 ;
- api_index <= OBJECTS_APIS_LAST ;
- api_index++ ) {
- if ( !_Objects_Information_table[ api_index ] )
- continue;
- 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 )
- continue;
-
- rtems_object_get_name( the_thread->Object.id, sizeof(name), name );
-
- printk( "0x%08" PRIx32 " %4s ", the_thread->Object.id, name );
-
- #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- _Timespec_Divide( &the_thread->cpu_time_used, &uptime, &ival, &fval );
-
- printk(
- "%" PRId32 ".%06d" /* cpu time used */
- " %3" PRId32 ".%02" PRId32 "\n", /* percentage */
- the_thread->cpu_time_used.tv_sec,
- the_thread->cpu_time_used.tv_nsec /
- TOD_NANOSECONDS_PER_MICROSECOND,
- ival,
- fval
- );
- #else
- ival = (total_units) ?
- the_thread->ticks_executed * 10000 / total_units : 0;
- fval = ival % 100;
- ival /= 100;
- printk(
- "%8" PRId32 " %3" PRId32 ".%02" PRId32"\n",
- the_thread->ticks_executed,
- ival,
- fval
- );
- #endif
- }
- }
- }
-
- #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- printk( "Uptime %d.%06d seconds\n\n",
- uptime.tv_sec,
- uptime.tv_nsec / TOD_NANOSECONDS_PER_MICROSECOND
- );
- #else
- printk(
- "Ticks since last reset = %" PRId32 "\n",
- _Watchdog_Ticks_since_boot - CPU_usage_Ticks_at_last_reset
- );
- printk( "Total Units = %" PRId32 "\n\n", total_units );
- #endif
-}
-
-static void CPU_usage_Per_thread_handler(
- Thread_Control *the_thread
-)
-{
- #ifdef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- the_thread->cpu_time_used.tv_sec = 0;
- the_thread->cpu_time_used.tv_nsec = 0;
- #else
- the_thread->ticks_executed = 0;
- #endif
-}
-
-/*
- * rtems_cpu_usage_reset
- */
-void rtems_cpu_usage_reset( void )
-{
- #ifndef RTEMS_ENABLE_NANOSECOND_CPU_USAGE_STATISTICS
- CPU_usage_Ticks_at_last_reset = _Watchdog_Ticks_since_boot;
- #endif
-
- rtems_iterate_over_all_threads(CPU_usage_Per_thread_handler);
-}