RTEMS: rtems_profiling_per_cpu Struct Reference

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Data Fields
rtems_profiling_per_cpu Struct Reference
API » Profiling Support

Per-CPU profiling data. More...

`#include <profiling.h>`

## Data Fields
rtems_profiling_header | header
| The profiling data header.
uint32_t | processor_index
| The processor index of this profiling data.
uint32_t | max_thread_dispatch_disabled_time
| The maximum time of disabled thread dispatching in nanoseconds.
uint64_t | thread_dispatch_disabled_count
| Count of times when the thread dispatch disable level changes from zero to one in thread context.
uint64_t | total_thread_dispatch_disabled_time
| Total time of disabled thread dispatching in nanoseconds.
uint32_t | max_interrupt_delay
| The maximum interrupt delay in nanoseconds if supported by the hardware.
uint32_t | max_interrupt_time
| The maximum time spent to process a single sequence of nested interrupts in nanoseconds.
uint64_t | interrupt_count
| Count of times when the interrupt nest level changes from zero to one.
uint64_t | total_interrupt_time
| Total time of interrupt processing in nanoseconds.

## Detailed Description

Per-CPU profiling data.

Theoretically all values in this structure can overflow, but the integer types are chosen so that they cannot overflow in practice. On systems with a 1GHz CPU counter, the 64-bit integers can overflow in about 58 years. Since the system should not spend most of the time in critical sections the actual system run-time is much longer. Several other counters in the system will overflow before we get a problem in the profiling area.

## Field Documentation

## ◆ interrupt_count

uint64_t rtems_profiling_per_cpu::interrupt_count

Count of times when the interrupt nest level changes from zero to one.

This value may overflow.

## ◆ max_interrupt_delay

uint32_t rtems_profiling_per_cpu::max_interrupt_delay

The maximum interrupt delay in nanoseconds if supported by the hardware.

The interrupt delay is the time interval from the recognition of an interrupt signal by the hardware up to the execution start of the corresponding high-level handler. The interrupt delay is the main contributor to the interrupt latency. To measure this time hardware support is required. A time stamp unit must capture the interrupt signal recognition time. If no hardware support is available, then this field will have a constant value of zero.

## ◆ max_interrupt_time

uint32_t rtems_profiling_per_cpu::max_interrupt_time

The maximum time spent to process a single sequence of nested interrupts in nanoseconds.

This is the time interval between the change of the interrupt nest level from zero to one and the change back from one to zero. It is the measured worst-case execution time of interrupt service routines. Please note that in case of nested interrupts this time includes the combined execution time and not the maximum time of an individual interrupt service routine.

## ◆ thread_dispatch_disabled_count

uint64_t rtems_profiling_per_cpu::thread_dispatch_disabled_count

Count of times when the thread dispatch disable level changes from zero to one in thread context.

This value may overflow.

## ◆ total_interrupt_time

uint64_t rtems_profiling_per_cpu::total_interrupt_time

Total time of interrupt processing in nanoseconds.

The average time of interrupt processing is the total time of interrupt processing divided by the interrupt count.

This value may overflow.

## ◆ total_thread_dispatch_disabled_time

uint64_t rtems_profiling_per_cpu::total_thread_dispatch_disabled_time

Total time of disabled thread dispatching in nanoseconds.

The average time of disabled thread dispatching is the total time of disabled thread dispatching divided by the thread dispatch disabled count.

This value may overflow.

The documentation for this struct was generated from the following file:

- cpukit/include/rtems/profiling.h