From d82f3e81a4ebfef1fbe471936339ba9260bfcc98 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 19 Nov 1998 16:05:05 +0000 Subject: New files --- doc/new_chapters/cpuuse.t | 142 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 doc/new_chapters/cpuuse.t (limited to 'doc/new_chapters/cpuuse.t') diff --git a/doc/new_chapters/cpuuse.t b/doc/new_chapters/cpuuse.t new file mode 100644 index 0000000000..ccb92883b8 --- /dev/null +++ b/doc/new_chapters/cpuuse.t @@ -0,0 +1,142 @@ +@c +@c COPYRIGHT (c) 1988-1998. +@c On-Line Applications Research Corporation (OAR). +@c All rights reserved. +@c +@c $Id$ +@c + +@chapter CPU Usage Statistics + +@section Introduction + +The CPU usage statistics manager is an RTEMS support +component that provides a convenient way to manipulate +the CPU usage information associated with each task +The routines provided by the CPU usage statistics manager are: + +@itemize @bullet +@item @code{CPU_usage_Dump} - Report CPU Usage Statistics +@item @code{CPU_usage_Reset} - Reset CPU Usage Statistics +@end itemize + +@section Background + +@section Operations + +@section Report CPU Usage Statistics + +@subsection Reporting Period Statistics + +The application may dynamically report the CPU usage for every +task in the system by calling the @code{CPU_usage_Dump} routine. +This routine prints a table with the following information per task: + +@itemize @bullet +@item task id +@item task name +@item number of clock ticks executed +@item percentage of time consumed by this task +@end itemize + +The following is an example of the report generated: + +@example +@group +CPU Usage by thread + ID NAME TICKS PERCENT +0x04010001 IDLE 0 0.000 +0x08010002 TA1 1203 0.748 +0x08010003 TA2 203 0.126 +0x08010004 TA3 202 0.126 + +Ticks since last reset = 1600 + +Total Units = 1608 +@end group +@end example + +Notice that the "Total Units" is greater than the ticks per reset. +This is an artifact of the way in which RTEMS keeps track of CPU +usage. When a task is context switched into the CPU, the number +of clock ticks it has executed is incremented. While the task +is executing, this number is incremented on each clock tick. +Otherwise, if a task begins and completes execution between +successive clock ticks, there would be no way to tell that it +executed at all. + +Another thing to keep in mind when looking at idle time, is that +many systems -- especially during debug -- have a task providing +some type of debug interface. It is usually fine to think of the +total idle time as being the sum of the IDLE task and a debug +task that will not be included in a production build of an application. + +@section Reset CPU Usage Statistics + +Invoking the @code{CPU_usage_Reset} routine resets the CPU usage +statistics for all tasks in the system. + +@section Directives + +This section details the CPU usage statistics manager's directives. +A subsection is dedicated to each of this manager's directives +and describes the calling sequence, related constants, usage, +and status codes. + +@page +@subsection CPU_usage_Dump - Report CPU Usage Statistics + +@subheading CALLING SEQUENCE: + +@ifset is-C +@example +void CPU_usage_Dump( void ); +@end example +@end ifset + +@ifset is-Ada +@example +An Ada interface is not currently available. +@end example +@end ifset + +@subheading STATUS CODES: NONE + +@subheading DESCRIPTION: + +This routine prints out a table detailing the CPU usage statistics for +all tasks in the system. + +@subheading NOTES: + +NONE + +@page +@subsection CPU_usage_Reset - Reset CPU Usage Statistics + +@subheading CALLING SEQUENCE: + +@ifset is-C +@example +void CPU_usage_Reset( void ); +@end example +@end ifset + +@ifset is-Ada +@example +An Ada interface is not currently available. +@end example +@end ifset + +@subheading STATUS CODES: NONE + +@subheading DESCRIPTION: + +This routine re-initializes the CPU usage statistics for all tasks +in the system to their initial state. The initial state is that +a task has not executed and thus has consumed no CPU time. +default state which is when zero period executions have occurred. + +@subheading NOTES: + +NONE -- cgit v1.2.3