-
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
Split global dirty set into dedicated pool #13472
Split global dirty set into dedicated pool #13472
Conversation
PR #13472: Size comparison from f878e4a to c09e493 Increases above 0.2%:
Increases (26 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
Decreases (2 builds for esp32)
Full report (32 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, 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.
Please explain what problem this is actually trying to address. That is, why do we want to make this change? (This is why the "Problem" and "Change overview" are separate things.)
Updated the problem description, thanks |
0f25706
to
df83786
Compare
PR #13472: Size comparison from 34e4032 to df83786 Increases above 0.2%:
Increases (26 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
Full report (32 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
|
46ac7b7
to
8a9a50d
Compare
-- Split global dirty set into dedicated bitmap object pool -- Update the clusterInfo pool with bitmap object pool -- Update the tests
8a9a50d
to
1ace624
Compare
PR #13472: Size comparison from 6bb25d5 to 1ace624 Increases above 0.2%:
Increases (26 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
Full report (32 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
|
Problem
Currently clusterInfo pool are created in array pool, we should use bitmap objects so that it can be allocated in heap in real products.
In addition, interested attribute/event paths from read/subscribe interaction are sharing the cluster info pool with dirty path used when attribute change happens. It is better to split dirty set path into dedicated pool so that it's easier to adjust the number of dirty paths using chip configuration parameter
Change overview
-- Split global dirty set into dedicated bitmap object pool
-- Update the clusterInfo pool with bitmap object pool
Testing
The exiting test covers