rtems_message_queue_receive / rtems_event_receive issues

Catalin Demergian demergian at gmail.com
Mon Oct 22 13:37:51 UTC 2018


Hi,
I see _Scheduler_priority_Ready_queue_enqueue
calls _Chain_Append_unprotected
which has an interesting comment
 * @note It does NOT disable interrupts to ensure the atomicity of the
 *       append operation.

Catalin


On Mon, Oct 22, 2018 at 4:08 PM Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:

> On 22/10/2018 15:00, Catalin Demergian wrote:
> > I started to look in the ready queues implementation. I added a debug
> > patch tracing my tasks having priority=100.
> > The way I see it, a task can enter a ready queue only
> >
> with _Scheduler_priority_Ready_queue_enqueue/_Scheduler_priority_Ready_queue_enqueue_first
> > and can be removed only by _Scheduler_priority_Ready_queue_extract.
>
> Yes.
>
> > I logged what rtems_clock_get_ticks_since_boot returns for every task
> > and what I found was that for SCrx task this value is way behind the
> > value for
> > other tasks, meaning after a point is not added in the ready queue
> > anymore.
> > I tried with debugger too, following the next pointers to see what's
> > in the ready_queue[100] and my task is not there, even if I see the
> > state is ready
> > when doing task command in shell.
> > any idea what might be causing this?
>
> The thread state is Thread_Control::current_state, the code sequences to
> block/unblock a thread should take care that ready threads
> (current_state == 0) are visible to the scheduler (enqueued). Something
> might have gone wrong during a non-ready to ready thread state transition.
>
> --
> Sebastian Huber, embedded brains GmbH
>
> Address : Dornierstr. 4, D-82178 Puchheim, Germany
> Phone   : +49 89 189 47 41-16
> Fax     : +49 89 189 47 41-09
> E-Mail  : sebastian.huber at embedded-brains.de
> PGP     : Public key available on request.
>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20181022/26972860/attachment-0002.html>


More information about the users mailing list