score: Add potpourri lock statistics

These SMP lock statistics are used for all lock objects that lack a
storage space for the statistics.  Examples are lock objects used in
external libraries which are independent of the actual RTEMS build
configuration.
This commit is contained in:
Sebastian Huber
2015-07-30 08:06:01 +02:00
parent e421936bbb
commit 10e32a2634
3 changed files with 14 additions and 0 deletions
+12
View File
@@ -733,6 +733,18 @@ struct _Thread_Control {
Thread_Lock_control Lock;
#endif
#if defined(RTEMS_SMP) && defined(RTEMS_PROFILING)
/**
* @brief Potpourri lock statistics.
*
* These SMP lock statistics are used for all lock objects that lack a
* storage space for the statistics. Examples are lock objects used in
* external libraries which are independent of the actual RTEMS build
* configuration.
*/
SMP_lock_Stats Potpourri_stats;
#endif
#ifdef __RTEMS_STRICT_ORDER_MUTEX__
/** This field is the head of queue of priority inheritance mutex
* held by the thread.
+1
View File
@@ -205,6 +205,7 @@ bool _Thread_Initialize(
_CPU_Context_Set_is_executing( &the_thread->Registers, false );
the_thread->Lock.current = &the_thread->Lock.Default;
_ISR_lock_Initialize( &the_thread->Lock.Default, "Thread Lock Default");
_SMP_lock_Stats_initialize( &the_thread->Potpourri_stats, "Thread Potpourri" );
_Atomic_Init_uint(&the_thread->Lock.generation, 0);
#endif
+1
View File
@@ -130,6 +130,7 @@ static void _Thread_Free( Thread_Control *the_thread )
#if defined(RTEMS_SMP)
_ISR_lock_Destroy( &the_thread->Lock.Default );
_SMP_lock_Stats_destroy( &the_thread->Potpourri_stats );
#endif
_Objects_Free( &information->Objects, &the_thread->Object );