C++ static constructors and SMP

Chris Johns chrisj at rtems.org
Sun Oct 20 21:49:08 UTC 2013


On 20/10/13 1:21 PM, Gedare Bloom wrote:
>
> Have a pint for me.
>
Will do. Joel has been showing off his new Android Shoe phone today. 
Very impressive.
>
> I assumed the c/c++ runtime initialization ran serially with other 
> bootstrap/initialization on the bootup core. Guess I have not looked 
> closely enough! I would think rtems initialization should "finish" 
> before the application starts? Otherwise lots of badness could happen...
>
I agree. The bug is in threadhandler.c and the code to detect 'doCons'. 
The first core should take the lock and call the init and all other 
cores should spin waiting until it has finished. The current code 
detects if it needs to make the call.

Currently the user has no control over the secondary cores entering 
multitasking. I am undecided if this is a good idea. I wonder if this 
should be a user call and not something that automatically happens so 
the system runs with a single core until the user flicks the switch. In 
the current model the users is multicore mode from the start.

Chris



More information about the devel mailing list