summaryrefslogtreecommitdiffstats
path: root/cpukit/libmisc/cpuuse/cpuusagereport.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libmisc/cpuuse/cpuusagereport.c')
-rw-r--r--cpukit/libmisc/cpuuse/cpuusagereport.c51
1 files changed, 18 insertions, 33 deletions
diff --git a/cpukit/libmisc/cpuuse/cpuusagereport.c b/cpukit/libmisc/cpuuse/cpuusagereport.c
index 98b5f8bfae..95d06480d6 100644
--- a/cpukit/libmisc/cpuuse/cpuusagereport.c
+++ b/cpukit/libmisc/cpuuse/cpuusagereport.c
@@ -44,7 +44,7 @@ void rtems_cpu_usage_report_with_plugin(
Objects_Information *information;
char name[13];
uint32_t ival, fval;
- Timestamp_Control uptime, total, ran, uptime_at_last_reset;
+ Timestamp_Control uptime, total, used, uptime_at_last_reset;
uint32_t seconds, nanoseconds;
if ( !print )
@@ -90,38 +90,23 @@ void rtems_cpu_usage_report_with_plugin(
name
);
- {
- Timestamp_Control last;
-
- /*
- * If this is the currently executing thread, account for time
- * since the last context switch.
- */
- ran = the_thread->cpu_time_used;
- if ( _Thread_Get_time_of_last_context_switch( the_thread, &last ) ) {
- Timestamp_Control used;
- _TOD_Get_uptime( &uptime );
- _Timestamp_Subtract( &last, &uptime, &used );
- _Timestamp_Add_to( &ran, &used );
- } else {
- _TOD_Get_uptime( &uptime );
- }
- _Timestamp_Subtract( &uptime_at_last_reset, &uptime, &total );
- _Timestamp_Divide( &ran, &total, &ival, &fval );
-
- /*
- * Print the information
- */
-
- seconds = _Timestamp_Get_seconds( &ran );
- nanoseconds = _Timestamp_Get_nanoseconds( &ran ) /
- TOD_NANOSECONDS_PER_MICROSECOND;
- (*print)( context,
- "%7" PRIu32 ".%06" PRIu32 " |%4" PRIu32 ".%03" PRIu32 "\n",
- seconds, nanoseconds,
- ival, fval
- );
- }
+ _Thread_Get_CPU_time_used( the_thread, &used );
+ _TOD_Get_uptime( &uptime );
+ _Timestamp_Subtract( &uptime_at_last_reset, &uptime, &total );
+ _Timestamp_Divide( &used, &total, &ival, &fval );
+
+ /*
+ * Print the information
+ */
+
+ seconds = _Timestamp_Get_seconds( &used );
+ nanoseconds = _Timestamp_Get_nanoseconds( &used ) /
+ TOD_NANOSECONDS_PER_MICROSECOND;
+ (*print)( context,
+ "%7" PRIu32 ".%06" PRIu32 " |%4" PRIu32 ".%03" PRIu32 "\n",
+ seconds, nanoseconds,
+ ival, fval
+ );
}
}
}