-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Include current task runtime in ulTaskGetRunTimeCounter #1234
base: main
Are you sure you want to change the base?
Conversation
Update ulTaskGetRunTimeCounter to include elapsed time since the last context switch when called for the currently running task. Previously, this time was not included in the calculation. Fixes FreeRTOS#1202. Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
The following functions also need a fix: |
What is the rationale for changing these? If at all, the IDLE task run time would be queried from a different task? |
In a multi-core SMP system, when querying idle time, only one core switches to a non-idle task to handle the query, other cores may still be running idle tasks. |
@@ -8411,15 +8411,36 @@ TickType_t uxTaskResetEventItemValue( void ) | |||
configRUN_TIME_COUNTER_TYPE ulTaskGetRunTimeCounter( const TaskHandle_t xTask ) | |||
{ | |||
TCB_t * pxTCB; | |||
configRUN_TIME_COUNTER_TYPE ulCurrentRunTimeCounter = 0, ulTimeSinceLastSwitchedIn = 0, ulTotalRunTime = 0; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it make sense to rename ulCurrentRunTimeCounter
to ulTotalTime
? The name ulCurrentRunTimeCounter
might not be so clear for users/developers whether it's the current task's running time or the total time, also this change would align with the ulTaskGetRunTimePercent
function implementation (consistent variable's name across both functions).
ulTotalTime = ( configRUN_TIME_COUNTER_TYPE ) portGET_RUN_TIME_COUNTER_VALUE(); | ||
#endif | ||
|
||
ulTotalTime = ulTotalTime * configNUMBER_OF_CORES; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This suggestion is added to align with the same syntax used on line 8531.
ulTotalTime = ulTotalTime * configNUMBER_OF_CORES; | |
ulTotalTime *= configNUMBER_OF_CORES; |
|
Description
Update
ulTaskGetRunTimeCounter
to include elapsed time since the last context switch when called for the currently running task. Previously, this time was not included in the calculation.Test Steps
Tested using Posix demo.
Checklist:
Related Issue
#1202.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.