Thanks a lot! This is why get_highest_ready was causing problems. I couldn't have figured it out by myself.
On Mon, Aug 17, 2020 at 4:14 AM Gedare Bloom <ged...@rtems.org> wrote: > This is wrong: > https://github.com/richidubey/rtems/blob/c3162134d3fd7d4d46ec01609d81bdb62bc818af/cpukit/score/src/schedulerstrongapa.c#L182 > > It assumes the Chain_Node is at the start of the struct > Scheduler_strong_APA_Node. > > On Sun, Aug 16, 2020 at 11:34 AM Richi Dubey <richidu...@gmail.com> wrote: > > > > Hi, > > > > The gdb trace above refers to this code where the items in all_Nodes > chain are checked. The items in the chain are getting inserted here, before > which on line 763, the Affinity of the items is set to all the online > processors. Why does the gdb show the Affinity of the node as 0 then? How > is this possible? Please advise. > > > > On Sun, Aug 16, 2020 at 5:48 PM Richi Dubey <richidu...@gmail.com> > wrote: > >> > >> Oh, I printed the variable value too early. Thanks for your help. > >> > >> On Sat, Aug 15, 2020 at 7:24 PM Gedare Bloom <ged...@rtems.org> wrote: > >>> > >>> On Sat, Aug 15, 2020 at 3:15 AM Richi Dubey <richidu...@gmail.com> > wrote: > >>> > > >>> > Hi, > >>> > > >>> > With reference to the code (github link), it aims to check if the > Affinty of a node is set to 0 by calling the function > _Processor_mask_Is_zero. > >>> > > >>> > While debugging with gdb, I can see using 'p' command that the > variable is indeed 0 but after the variable gets passed to the function, > the value of the variable isn't 0 anymore. Why is this happening? > >>> > > >>> > Gdb trace: > >>> > > ---------------------------------------------------------------------- > >>> > (gdb) > >>> > 0x00118af4 187 _Processor_mask_Is_set(&node->Affinity, > _Per_CPU_Get_index(curr_CPU) || > >>> > (gdb) > >>> > 0x00118af6 187 _Processor_mask_Is_set(&node->Affinity, > _Per_CPU_Get_index(curr_CPU) || > >>> > (gdb) p &node->Affinity > >>> > $8 = (Processor_mask *) 0x200efc <_Thread_Objects+2172> > >>> address 0x200efc > >>> > >>> > (gdb) p node->Affinity > >>> > $9 = { > >>> > __bits = {0} > >>> > } > >>> > (gdb) si > >>> > 0x00118af8 187 _Processor_mask_Is_set(&node->Affinity, > _Per_CPU_Get_index(curr_CPU) || > >>> > (gdb) > >>> > 190 _Processor_mask_Is_zero( &node->Affinity ) ) > >>> > (gdb) > >>> > 0x00118afc 190 _Processor_mask_Is_zero( &node->Affinity ) ) > >>> > (gdb) > >>> > 0x00118afe 190 _Processor_mask_Is_zero( &node->Affinity ) ) > >>> > (gdb) > >>> > 0x00118b00 190 _Processor_mask_Is_zero( &node->Affinity ) ) > >>> > (gdb) > >>> > _Processor_mask_Is_zero (mask=0x203580 <_Per_CPU_Information>) at > /home/richi/quick-start/src/rtems/cpukit/include/rtems/score/processormask.h:75 > >>> > 75 { > >>> > (gdb) > >>> > 0x0011726a 75 { > >>> > (gdb) > >>> > 0x0011726c 75 { > >>> > (gdb) p mask > >>> > $10 = (const Processor_mask *) 0x203580 <_Per_CPU_Information> > >>> address 0x203580 > >>> > >>> You're not looking at the same memory location > >>> > >>> > (gdb) p *mask > >>> > $11 = { > >>> > __bits = {2126656} > >>> > } > >>> > ------------------------------------------------------------ > >>> > > >>> > Please provide your views on this. > >>> > Thanks, > >>> > Richi, > >>> > _______________________________________________ > >>> > devel mailing list > >>> > devel@rtems.org > >>> > http://lists.rtems.org/mailman/listinfo/devel >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel