When does heir become executing on calling _Thread_Dispatch_request from another cpu?
Richi Dubey
richidubey at gmail.com
Fri Aug 21 08:40:05 UTC 2020
Hi,
While trying to debug my code, I realised that the heir set on another
processor does not become that cpu's per_cpu_control->executing after some
time.
On checking the allocate_processor call that set the heir, I saw the call
trace as:
_Scheduler_SMP_Allocate_processor_exact -> _Thread_Dispatch_update_heir :
-------------------------------------
...
} else { (Here this gets executed since the current cpu is different than
the one that gets its executing changed)
_Atomic_Fetch_or_ulong( &cpu_target->message, 0, ATOMIC_ORDER_RELEASE );
_CPU_SMP_Send_interrupt( _Per_CPU_Get_index( cpu_target ) );
}
............................................
So, how long does it take for heir to become executing on another cpu? This
question is wrt my code at this line
<https://github.com/richidubey/rtems/blob/03d08d02b3e61570f2022845caa44ec6a261f677/cpukit/score/src/schedulerstrongapa.c#L297>.
Is it okay if i use heir here instead of executing (To get the latest
thread intended to be scheduled on the cpu)? Would it mean the same thing?
Is heir==executing when thread_dispatch is set to false?
Please help me out.
Thanks,
Richi.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200821/7a866310/attachment.html>
More information about the devel
mailing list