<div dir="ltr">Hi,<div><br></div><div>Please clear a doubt of mine.</div><div><br></div><div>Threads that get created automatically when a CPU starts have their scheduler nodes with node->idle set to the thread itself, while the nodes that are created due to a task being created have NULL in their node->idle (If not using helper function atm).  Am I right?  <div><br></div><div>If yes, Why isn't the function _Scheduler_Set_idle_thread() called by _Thread_Create_idle_for_CPU? </div><div><br></div><div>Trace:</div><div><br></div><div>exinit.c -> _Thread_Create_idle -> _Thread_Create_idle_for_CPU -> _Scheduler_Start_idle -> _Scheduler_EDF_SMP_Start_idle -> _Scheduler_SMP_Do_start_idle ->_Scheduler_SMP_Release_idle_thread .<br></div><div><br></div><div>I am asking this since _Scheduler_Set_idle_thread() is the only function that sets the node->idle value. </div><div><br></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 22, 2020 at 1:59 PM Richi Dubey <<a href="mailto:richidubey@gmail.com" target="_blank">richidubey@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">This helps. Thanks a lot.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 21, 2020 at 6:55 PM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 21/07/2020 14:36, Richi Dubey wrote:<br>
<br>
> Could you please explain what _User_extensions_Thread_start does? It's <br>
> hard to understand it all by myself since it has a lot of other <br>
> information related to objects.<br>
><br>
> The brief for it says:<br>
> /**<br>
>  * @brief Starts a thread.<br>
>  *<br>
>  * @param created The thread to start.<br>
>  */<br>
><br>
> This is exactly what my doubt was. When we unlocked the node by <br>
> setting the state to ready by calling _Thread_Clear_state_locked, <br>
> shouldn't the node be scheduled if the scheduler sees it fit? Why are <br>
> we enabling thread dispatch on the current cpu (Shouldn't it depend on <br>
> the affinity of the thread)?<br>
><br>
> Please tell me what happens in principle after <br>
> calling _Thread_Clear_state_locked().<br>
<br>
I tried to improve the _Thread_Start() description:<br>
<br>
<a href="https://lists.rtems.org/pipermail/devel/2020-July/060764.html" rel="noreferrer" target="_blank">https://lists.rtems.org/pipermail/devel/2020-July/060764.html</a><br>
<br>
</blockquote></div>
</blockquote></div>