[RTEMS Project] #3835: Support statically allocated threads

RTEMS trac trac at rtems.org
Fri Jan 3 06:37:06 UTC 2020


#3835: Support statically allocated threads
-----------------------------+------------------------------
 Reporter:  Sebastian Huber  |       Owner:  Sebastian Huber
     Type:  enhancement      |      Status:  assigned
 Priority:  normal           |   Milestone:  5.1
Component:  score            |     Version:  5
 Severity:  normal           |  Resolution:
 Keywords:                   |  Blocked By:  3838
 Blocking:                   |
-----------------------------+------------------------------
Description changed by Sebastian Huber:

Old description:

> In some applications it is desirable to have statically allocated
> resources for all operating system objects.
>
> In addition to the thread control block, up to four memory areas are
> currently allocated by a thread:
>
> 1. stack area
>
> 2. TLS area
>
> 3. FP context
>
> 4. thread queue heads
>
> Currently the FP context and the TLS area are separately allocated from
> the workspace. This complicates the workspace size estimate. Add the FP
> context and TLS size to the stack size and place them in the stack area.
> This makes it also possible to move the stack area allocation out of
> _Thread_Initialize(). Use a hook to get the thread queue heads which is
> configured depending on the unlimited objects option of the
> configuration.

New description:

 In some applications it is desirable to have statically allocated
 resources for all operating system objects.

 In addition to the thread control block, up to four memory areas are
 currently allocated by a thread:

 1. stack area

 2. TLS area

 3. FP context

 4. thread queue heads

 Currently the FP context and the TLS area are separately allocated from
 the workspace. This complicates the workspace size estimate. Add the FP
 context and TLS size to the stack size and place them in the stack area.
 This makes it also possible to move the stack area allocation out of
 _Thread_Initialize(). Use a hook to get the thread queue heads which is
 configured depending on the unlimited objects option of the configuration.

 Statically allocate the stacks for internal threads (e.g. idle and MPCI
 receive server) in a dedicated linker section (similar to the interrupt
 stacks). Mention this in the Classic API Guide configuration chapter.

--

--
Ticket URL: <http://devel.rtems.org/ticket/3835#comment:10>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list