<div dir="ltr">Hi,<div><br></div><div>Follow up of my progress to this question:</div><div><br></div><div>I 'stepped inside' the important functions to make the observation that the flow of code is actually:</div><div><br></div><div>-------------------------------------<br></div><div><br></div><div>_Scheduler_strong_APA_Node_initialize<br></div><div><br></div><div>_Scheduler_Node_initialize<br></div><div><br></div><div>_Thread_Initialize<br></div><div><br></div><div>rtems_task_create<br></div><div><div><br>_RTEMS_tasks_Initialize_user_task<br></div><div><br></div><div>rtems_initialize_executive<br></div><div><br></div><div>boot_card<br></div><div><br></div><div>bsp_start_hook_0_done</div></div><div><br></div><div>-------------------------------------</div><div>(So, the thread corresponding to the Init task gets created and assigned a scheduler node which is then initialized and the Init task is started by calling rtems_task_start on it)</div><div><br></div><div><br></div><div>So, is it okay if I set the Affinity (defined <a href="https://github.com/richidubey/rtems/blob/03650c47c537c1acd584c5a9c3db588ab49634ef/cpukit/include/rtems/score/schedulerstrongapa.h#L75" target="_blank">here</a>)  of a node to all processors when it gets initialized (<a href="https://github.com/richidubey/rtems/blob/03650c47c537c1acd584c5a9c3db588ab49634ef/cpukit/score/src/schedulerstrongapa.c#L739" target="_blank">here</a> ) because I remember Mr. Huber telling me earlier that by default a node/task/thread is allowed to execute on all the processors?</div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Aug 14, 2020 at 3:26 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">Hi,<div><br></div><div>My code is failing because its logic assumed (code <a href="https://github.com/richidubey/rtems/blob/03650c47c537c1acd584c5a9c3db588ab49634ef/cpukit/score/src/schedulerstrongapa.c#L315" target="_blank">here</a>) that it would never get a node with an empty affinity (i.e. no affinity to any processor or a 0 affinity). This assumption proved wrong as I can see from the gdb and the current flow of code observed is:</div><div><br></div><div>------------------------------------------------  <div>_Scheduler_strong_APA_Get_lowest_scheduled<br></div><div><br></div><div>_Scheduler_SMP_Enqueue<br></div><div><br></div><div>_Scheduler_strong_APA_Enqueue<br></div><div><br></div><div>_Scheduler_SMP_Unblock<br></div><div><br></div><div>_Scheduler_strong_APA_Unblock<br></div><div><br></div><div>_Scheduler_Unblock<br></div><div><br></div><div>_Thread_Clear_state_locked<br></div><div><br></div><div>_Thread_Start<br></div><div><br></div><div>rtems_task_start<br></div><div><br></div><div>_RTEMS_tasks_Initialize_user_task<br></div><div><br></div><div>rtems_initialize_executive<br></div><div><br></div><div>boot_card<br></div><div><br></div><div>bsp_start_hook_0_done</div><div>----------------------------------------------------</div><div><br></div><div>Why is this happening? The Affinity variable (defined <a href="https://github.com/richidubey/rtems/blob/03650c47c537c1acd584c5a9c3db588ab49634ef/cpukit/include/rtems/score/schedulerstrongapa.h#L75" target="_blank">here</a>) gets set whenever the Set affinity operation corresponding to Strong_APA scheduler (defined <a href="https://github.com/richidubey/rtems/blob/03650c47c537c1acd584c5a9c3db588ab49634ef/cpukit/score/src/schedulerstrongapa.c#L770" target="_blank">here</a>) gets called. So, why wasn't this function called before this happened? Any help would be appreciated.</div></div><div><br></div><div>Thanks,</div><div>Richi.</div></div>
</blockquote></div>