About Chains in RTEMS
Sebastian Huber
sebastian.huber at embedded-brains.de
Thu Feb 25 15:27:08 UTC 2021
On 25/02/2021 10:47, Richi Dubey wrote:
> Hi,
>
> When I am debugging the call to _Chain_Append_unprotected (from line
> 92
> <https://git.rtems.org/rtems/tree/testsuites/sptests/sp02/init.c#n92> of
> sp02, rtems_task_delete -> _Thread_Close ->...->_Thread_Cancel -> ...
> ->_Scheduler_Unblock -> ... _Scheduler_strong_APA_Insert_ready
> -> _Chain_Append_unprotected), I see a weird chain behavior where
> there's some kind of cycle:
>
> (gdb) p _Chain_Tail(the_chain)
> $20 = (Chain_Node *) 0x200768
> <_Configuration_Scheduler_strong_APA_dflt+40>
> (gdb) p _Chain_Tail(the_chain)->previous
> $21 = (Chain_Node *) 0x2014e8 <_RTEMS_tasks_Objects+2024>
> (gdb) p (_Chain_Tail(the_chain)->previous)->previous
> $22 = (Chain_Node *) 0x200fe0 <_RTEMS_tasks_Objects+736>
> (gdb) p ((_Chain_Tail(the_chain)->previous)->previous)->previous
> $23 = (Chain_Node *) 0x2014e8 <_RTEMS_tasks_Objects+2024>
> (gdb) p
> (((_Chain_Tail(the_chain)->previous)->previous)->previous)->previous
> $24 = (Chain_Node *) 0x200fe0 <_RTEMS_tasks_Objects+736>
>
>
> sp02 is a single processor test and I am trying to run it on the
> Strong APA SMP scheduler. Can someone please give an insight into what
> might be causing this? The Strong APA scheduler does not affect the
> functioning of the chain, it only uses the chain using standard
> function headers defined in chain.h
Cycles in a chain may be caused by double insertions or extractions. I
would enable RTEMS_DEBUG since it adds assertions for these cases.
--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax: +49-89-18 94 741 - 08
Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
More information about the devel
mailing list