diff --git a/headers/private/system/scheduler_defs.h b/headers/private/system/scheduler_defs.h index 7b6f218fa4..c17bf43414 100644 --- a/headers/private/system/scheduler_defs.h +++ b/headers/private/system/scheduler_defs.h @@ -49,6 +49,7 @@ struct scheduling_analysis_thread_wait_object { thread_id thread; scheduling_analysis_wait_object* wait_object; bigtime_t wait_time; + int64 waits; scheduling_analysis_thread_wait_object* next_in_list; }; diff --git a/src/system/kernel/scheduler.cpp b/src/system/kernel/scheduler.cpp index a767568717..00ccda6049 100644 --- a/src/system/kernel/scheduler.cpp +++ b/src/system/kernel/scheduler.cpp @@ -897,6 +897,7 @@ struct ThreadWaitObject : HashObject, scheduling_analysis_thread_wait_object { this->thread = thread; wait_object = waitObject; wait_time = 0; + waits = 0; next_in_list = NULL; } @@ -1467,6 +1468,7 @@ analyze_scheduling(bigtime_t from, bigtime_t until, bigtime_t diffTime = entry->Time() - thread->lastTime; if (thread->waitObject != NULL) { thread->waitObject->wait_time += diffTime; + thread->waitObject->waits++; thread->waitObject = NULL; } else if (thread->state != UNKNOWN) thread->unspecified_wait_time += diffTime;