-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
[system] Increase number of timers to 32 #21966
Conversation
The maximum number of timers is set to 32, but most platforms override this value to 16 (well, for platforms that use heap-allocated pools, such as Darwin or Linux, it doesn't matter). The problem is that 16 timers is too little to handle the spec-mandated number of active subscriptions and other scheduled activities. Double the number of timers to pass stress/capacity tests. Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
PR #21966: Size comparison from 65176fa to fa57fa7 Increases above 0.2%:
Increases (31 builds for bl602, cc13x2_26x2, efr32, k32w, mbed, nrfconnect, p6, telink)
Decreases (6 builds for cc13x2_26x2, nrfconnect, p6)
Full report (55 builds for bl602, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
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.
32 might be a bit overkill I had succes with 24. It should account for the CHIP_CONFIG_MAX_EXCHANGE_CONTEXTS
+ slack.
I assume the memory usage between 24 and 32 is rather small and has low impact.
The maximum number of timers is set to 32, but most platforms override this value to 16 (well, for platforms that use heap-allocated pools, such as Darwin or Linux, it doesn't matter). The problem is that 16 timers is too little to handle the spec-mandated number of active subscriptions and other scheduled activities. Double the number of timers to pass stress/capacity tests. Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no> Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
The maximum number of timers is set to 32, but most platforms override this value to 16 (well, for platforms that use heap-allocated pools, such as Darwin or Linux, it doesn't matter). The problem is that 16 timers is too little to handle the spec-mandated number of active subscriptions and other scheduled activities. Double the number of timers to pass stress/capacity tests. Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no> Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no> Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no> Co-authored-by: Damian Królik <66667989+Damian-Nordic@users.noreply.github.com>
@jmartinez-silabs We also use timers for each subscription (to handle the minimum interval), OTA requestor or to perform long-running commands (such as LevelControl MoveToLevel). And I'm pretty sure I might have missed some places. That's why I thought 24 could be too little in some very unfortunate scenario. |
The maximum number of timers is set to 32, but most platforms override this value to 16 (well, for platforms that use heap-allocated pools, such as Darwin or Linux, it doesn't matter). The problem is that 16 timers is too little to handle the spec-mandated number of active subscriptions and other scheduled activities. Double the number of timers to pass stress/capacity tests. Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no> Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
Problem
The maximum number of timers is set to 32, but most platforms override this value to 16 (well, for platforms that use heap-allocated pools, such as Darwin or Linux, it doesn't matter).
The problem is that 16 timers is too little to handle the spec-mandated number of active subscriptions and other
scheduled activities.
Change overview
Double the number of timers to pass stress/capacity tests.
Fixes #21965
Testing
I ran TC_SC_3_6.py and observed it passes.