Skip to content
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

Reset xNextTaskUnblockTime in task notify FromISR APIs #1111

Merged
merged 4 commits into from
Aug 6, 2024

Conversation

aggarg
Copy link
Member

@aggarg aggarg commented Aug 5, 2024

Description

If a task is blocked waiting for a notification then xNextTaskUnblockTime might be set to the blocked task's timeout time. If the task is unblocked for a reason other than a timeout xNextTaskUnblockTime is normally left unchanged, because it will automatically get reset to a new value when the tick count equals xNextTaskUnblockTime. However if tickless idle is used it is important to enter sleep mode at the earliest possible time - so reset xNextTaskUnblockTime here to ensure it is updated at the earliest possible time.

Test Steps

Tested the change on STM32H7 to ensure that xNextTaskUnblockTime gets reset after the call to vTaskNotifyGiveFromISR.

Checklist:

  • I have tested my changes. No regression in existing tests.
  • [NA] I have modified and/or added unit-tests to cover the code changes in this Pull Request.

Related Issue

https://forums.freertos.org/t/the-vtaskgenericnotifygivefromisr-function-need-call-prvresetnexttaskunblocktime/21090

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

If a task is blocked waiting for a notification then
xNextTaskUnblockTime might be set to the blocked task's timeout time. If
the task is unblocked for a reason other than a timeout
xNextTaskUnblockTime is normally left unchanged, because it will
automatically get reset to a new value when the tick count equals
xNextTaskUnblockTime. However if tickless idle is used it is important
to enter sleep mode at the earliest possible time - so reset
xNextTaskUnblockTime here to ensure it is updated at the earliest
possible time.

This was reported here -
https://forums.freertos.org/t/the-vtaskgenericnotifygivefromisr-function-need-call-prvresetnexttaskunblocktime/21090

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
@aggarg aggarg requested a review from a team as a code owner August 5, 2024 09:34
aggarg added a commit to aggarg/FreeRTOS that referenced this pull request Aug 5, 2024
FreeRTOS/FreeRTOS-Kernel#1111

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Copy link

sonarcloud bot commented Aug 5, 2024

jefftenney added a commit to jefftenney/LPTIM-Tick that referenced this pull request Aug 5, 2024
kar-rahul-aws pushed a commit to FreeRTOS/FreeRTOS that referenced this pull request Aug 6, 2024
* Unit test updates for kernel PR #1111

FreeRTOS/FreeRTOS-Kernel#1111

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>

* Fix doxygen check

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>

---------

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
@aggarg aggarg merged commit 53c7e7c into FreeRTOS:main Aug 6, 2024
16 checks passed
@aggarg aggarg deleted the reset_xNextTaskUnblockTime branch August 6, 2024 05:19
moninom1 pushed a commit to moninom1/FreeRTOS that referenced this pull request Aug 13, 2024
* Unit test updates for kernel PR FreeRTOS#1111

FreeRTOS/FreeRTOS-Kernel#1111

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>

* Fix doxygen check

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>

---------

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants