2006-09-14 Joel Sherrill <joel@OARcorp.com>

* new_chapters/Makefile.am, new_chapters/gen_section,
	new_chapters/new_chapters.texi, user/Makefile.am, user/c_user.texi,
	user/dirstat.texi: Promote CPU Usage to first class citizen. Rename
	to start with rtems_ and include documentation in user guide.
	* user/cpuuse.t: New file.
	* new_chapters/cpuuse.t: Removed.
This commit is contained in:
Joel Sherrill
2006-09-14 15:06:38 +00:00
parent 5c1023a034
commit e694c94bf7
8 changed files with 33 additions and 35 deletions
+9 -4
View File
@@ -18,7 +18,7 @@ GENERATED_FILES = overview.texi concepts.texi datatypes.texi init.texi \
task.texi intr.texi clock.texi timer.texi sem.texi msg.texi event.texi \
signal.texi part.texi region.texi dpmem.texi io.texi fatal.texi \
schedule.texi rtmon.texi bsp.texi userext.texi conf.texi mp.texi \
stackchk.texi
stackchk.texi cpuuse.texi
COMMON_FILES += $(top_srcdir)/common/cpright.texi
@@ -161,12 +161,17 @@ mp.texi: mp.t
stackchk.texi: stackchk.t
$(BMENU2) -p "Multiprocessing Manager MULTIPROCESSING_ANNOUNCE - Announce the arrival of a packet" \
-u "Top" \
-n "CPU Usage Statistics" < $< > $@
cpuuse.texi: cpuuse.t
$(BMENU2) -p "Stack Bounds Checker stack_checker_dump_usage - Report Task Stack Usage" \
-u "Top" \
-n "Directive Status Codes" < $< > $@
EXTRA_DIST = bsp.t concepts.t clock.t datatypes.t conf.t dpmem.t event.t \
fatal.t init.t intr.t io.t mp.t msg.t overview.t part.t region.t rtmon.t \
sem.t schedule.t signal.t stackchk.t task.t timer.t userext.t \
EXTRA_DIST = bsp.t clock.t concepts.t cpuuse.t datatypes.t conf.t dpmem.t \
event.t fatal.t init.t intr.t io.t mp.t msg.t overview.t part.t region.t \
rtmon.t sem.t schedule.t signal.t stackchk.t task.t timer.t userext.t \
$(TXT_FILES) $(PNG_FILES) $(EPS_IMAGES) $(noinst_DATA)
CLEANFILES += c_user.info c_user.info-? c_user.info-??
+2
View File
@@ -101,6 +101,7 @@
@include conf.texi
@include mp.texi
@include stackchk.texi
@include cpuuse.texi
@include dirstat.texi
@include example.texi
@include glossary.texi
@@ -136,6 +137,7 @@ This is the online version of the RTEMS C User's Guide.
* Configuring a System::
* Multiprocessing Manager::
* Stack Bounds Checker::
* CPU Usage Statistics::
* Directive Status Codes::
* Example Application::
* Glossary::
+143
View File
@@ -0,0 +1,143 @@
@c
@c COPYRIGHT (c) 1988-2002.
@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{@value{DIRPREFIX}cpu_usage_report} - Report CPU Usage Statistics
@item @code{@value{DIRPREFIX}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{@value{DIRPREFIX}cpu_usage_report} 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{@value{DIRPREFIX}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_report - Report CPU Usage Statistics
@subheading CALLING SEQUENCE:
@ifset is-C
@example
void rtems_cpu_usage_report( 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 rtems_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
+1 -1
View File
@@ -7,7 +7,7 @@
@c
@ifinfo
@node Directive Status Codes, Example Application, Stack Bounds Checker stack_checker_dump_usage - Report Task Stack Usage, Top
@node Directive Status Codes, Example Application, CPU Usage Statistics cpu_usage_reset - Reset CPU Usage Statistics, Top
@end ifinfo
@chapter Directive Status Codes
@table @b