[PATCH 2/3] score: Place object controls into .noinit sections

Chris Johns chrisj at rtems.org
Fri Jul 15 06:40:32 UTC 2022


On 15/7/2022 3:41 pm, Sebastian Huber wrote:
> On 15.07.22 04:03, Chris Johns wrote:
>> On 14/7/2022 11:13 pm, Sebastian Huber wrote:
>>> Place the statically allocated object control blocks, local tables, and thread
>>> queue heads into the dedicated .noinit intput sections.  The output section is
>>> not zero initialized.
>> Does the data held in no-init rely on code having to initialise all fields? Is
>> the saving because there is code that already does this?
> 
> Yes, we have a double initialization. These elements were allocated from the
> workspace before the static allocation. The workspace allocates uninitialized
> data. We still have this uninitialized data if unlimited objects are used.

Yes it does and in this case it is covered.

>>> Placing these elements into the .noinit section reduces
>>> the system initialization time by decreasing the .bss section size.
>> How much data do you see that is being moved out of .bss to .noinit?
> 
> It depends on your application configuration. You have for example about 700
> bytes per task. I noticed this in an application which hit the watchdog due to
> an update to RTEMS 6 because of the longer boot time to the initialization task.

Ouch.

And thanks for the ticket.

Chris


More information about the devel mailing list