-
Notifications
You must be signed in to change notification settings - Fork 55
A guinea-pig binary for bloat checks #332
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
Conversation
@kpschoedel Would appreciate your expertise here. :) Since this PR, the repo somehow stopped sending size reports. What I changed which might affect it (all questionable changes are in
... but it did report the same warning when the configuration was previously named
I wonder:
|
@kpschoedel Scrach that ^^^. While typing this comment, it finally reported the new values. :) |
Yes, the names are arbitrary. ‘Platform’ is associated with a configuration file and (in the C++ tree) corresponds to a hardware/toolchain combo, close to ‘target’ in the toolchain sense, whereas ‘target’ reads as ‘build target’ (and ‘config’ matches your usage). The platform configuration is optional and probably not necessary for you since you don't have a multiplicity of vendor section/symbol conventions. |
This PR is fixing the following TBD left unsolved in #332 " Fix the large "responder" future by splitting it into multiple tasks in an embassy-executor task pool. This should reduce these 20KB down to ~ 10KB on x64 and even less for the other targets " Additionally, it fixes a bug in the scheduling of the transport tasks, because `matter.run_transport` needs to be called only **once**, and if there are multiple transports (as in UDP and BTP in our case) they need to be chained together.
As per the documents inside the binary code, it is specially crafted so that all memory except the stack is reported towards the
.bss
section.For this to happen, all
rs-matter
types are allocated statically.This includes the futures (whose size is anything but trivial), which are moved/emplaced into
.bss
by the specific executor which is utilized (embassy-executor
).TBDs: