summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/threaddispatch.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-03-10 10:04:09 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-03-14 08:46:49 +0100
commitf980561ee073a7f24f65ed572852fa96edfa1708 (patch)
treea2e62dd469acbe201388c9b8a3e0ebd9d7277e9f /cpukit/score/src/threaddispatch.c
parentsapi: Add SMP lock profiling app. level data (diff)
downloadrtems-f980561ee073a7f24f65ed572852fa96edfa1708.tar.bz2
score: Add per-CPU profiling
Add per-CPU profiling stats API. Implement the thread dispatch disable level profiling. The interrupt profiling must be implemented in CPU port specific parts (mostly assembler code). Add a support function _Profiling_Outer_most_interrupt_entry_and_exit() for this purpose.
Diffstat (limited to 'cpukit/score/src/threaddispatch.c')
-rw-r--r--cpukit/score/src/threaddispatch.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/cpukit/score/src/threaddispatch.c b/cpukit/score/src/threaddispatch.c
index ecf6810716..da357c4a44 100644
--- a/cpukit/score/src/threaddispatch.c
+++ b/cpukit/score/src/threaddispatch.c
@@ -40,6 +40,7 @@ void _Thread_Dispatch( void )
per_cpu = _Per_CPU_Get();
_Assert( per_cpu->thread_dispatch_disable_level == 0 );
+ _Profiling_Thread_dispatch_disable( per_cpu, 0 );
per_cpu->thread_dispatch_disable_level = 1;
#if defined( RTEMS_SMP )
@@ -170,6 +171,7 @@ void _Thread_Dispatch( void )
post_switch:
_Assert( per_cpu->thread_dispatch_disable_level == 1 );
per_cpu->thread_dispatch_disable_level = 0;
+ _Profiling_Thread_dispatch_enable( per_cpu, 0 );
_Per_CPU_Release_and_ISR_enable( per_cpu, level );