-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Feature/smp granular locks v4 #1154
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
base: main
Are you sure you want to change the base?
Feature/smp granular locks v4 #1154
Conversation
@chinglee-iot @aggarg This PR introduces the granular locks changes to the FreeRTOS kernel. Please have a look and we could have discussions/changes in this PR context. Thank you. cc: @ESP-Marius @Dazza0 |
Thank you for your contribution, I'll forward this request to the team. There are few error in the PR can you please try fixing them |
Hello @sudeep-mohanty, I am just following up if you had time to fix the build issues |
@rawalexe Yes! I shall work on the failures and would also do some refactoring for an easier review process. For now, I've put this PR in draft. |
0159a4a
to
5bf8c33
Compare
Hi @sudeep-mohanty, |
5bf8c33
to
9f8acc7
Compare
Hi @ActoryOu, I've made some updates which should fix the CI failures however I could not understand why the link-verifier action fails. Seems more like a script failure to me. So this action would still fail. If you have more information on what is causing it, could you let me know and I shall fix it. Thanks. |
c79962d
to
f50d476
Compare
Created a PR to fix the CI failure - FreeRTOS/FreeRTOS#1292 |
70eb466
to
edc1c98
Compare
|
7df6202
to
cc09d63
Compare
This commit removes the need for suspending the scheduler when calling some event_groups.c APIs as the non-deterministic operations are happening with the event group being locked and the preemption being disabled from the current task.
b118a8b
to
1b57169
Compare
1b57169
to
12d3d5d
Compare
|
This PR adds support for granular locking to the FreeRTOS kernel.
Description
Granular locking introduces the concept of having localized locks per kernel data group for SMP configuration. This method is an optional replacement of the existing kernel locks and is controlled by a new port layer configuration, viz.,
portUSING_GRANULAR_LOCKS
. More details about the approach can be found here.Test Steps
The implementation has been tested on Espressif SoC targets, viz., the ESP32 using the ESP-IDF framework.
1. Testing on an
esp32
targetesp32
, setup the ESP-IDF environment on your local machine. The steps to follow are listed in the Getting Started Guide.components/freertos/test_apps/freertos
where all the test cases are located.performance
subfolder at the same location.idf.py seet-target esp32
.menuconfig
options. To do this you must enter the command-idf.py menuconfig
->Component config
->FreeRTOS
->Kernel
->Run the Amazon SMP FreeRTOS kernel instead (FEATURE UNDER DEVELOPMENT)
. Save the configuration and exit the menuconfig.idf.py build flash monitor
.TODO
Checklist:
Related Issue
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.