mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-20 23:12:22 +08:00
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:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user