RTEMS scheduler bug ?
Catalin Demergian
demergian at gmail.com
Tue Apr 2 14:28:41 UTC 2019
I did more tests. it seems not the same type of error happens every time. I
got the _Configuration_Scheduler_priority_dflt a few times, but also
the 'enabled interrupts when they suppposed to be disabled' happened as
well
RTEMS_INLINE_ROUTINE void _Scheduler_priority_Ready_queue_enqueue(
Chain_Node *node,
Scheduler_priority_Ready_queue *ready_queue,
Priority_bit_map_Control *bit_map
)
{
Chain_Control *ready_chain = ready_queue->ready_chain;
//_Assert(_ISR_Get_level() != 0);
if(_ISR_Get_level() == 0)
gIntrErrs++;
cnt_before = _Chain_Node_count_unprotected(ready_chain);
_Chain_Append_unprotected( ready_chain, node );
cnt_after = _Chain_Node_count_unprotected(ready_chain);
if(cnt_after != cnt_before + 1)
gIntrErrs++;
_Priority_bit_map_Add( bit_map, &ready_queue->Priority_map );
}
.. and I modified the cpuuse command to display gIntrErrs
# cpuuse
-------------------------------------------------------------------------------
CPU USAGE BY THREAD
------------+----------------------------------------+---------------+---------
ID | NAME | SECONDS |
PERCENT
------------+----------------------------------------+---------------+---------
*cdemergian build 10.40 am gIntrErrs=3*
0x09010001 | IDLE | 391.115963 |
99.323
0x0a010001 | UI1 | 1.059489 |
0.269
0x0a010002 | ntwk | 0.229622 |
0.058
0x0a010003 | SCtx | 0.167826 |
0.042
0x0a010004 | SCrx | 0.224951 |
0.057
0x0a010005 | eRPC | 0.000049 |
0.000
0x0a010006 | SHLL | 0.868036 |
0.220
0x0b010001 | | 0.000096 |
0.000
0x0b010002 | | 0.114388 |
0.029
------------+----------------------------------------+---------------+---------
TIME SINCE LAST CPU USAGE RESET IN SECONDS:
393.836064
-------------------------------------------------------------------------------
[/] #
It seems it's 3. (I've seen values as 2 or 4 at other test runs)
Catalin
On Tue, Apr 2, 2019 at 4:37 AM Catalin Demergian <demergian at gmail.com>
wrote:
> it's just the way Eclipse shows it, it's part of the call stack, but not
> the name of a normal function.
>
>
> On Tue, Apr 2, 2019 at 2:02 PM Sebastian Huber <
> sebastian.huber at embedded-brains.de> wrote:
>
>>
>>
>> On 02/04/2019 12:59, Catalin Demergian wrote:
>> > Hi,
>> > I was able to reproduce the issue again, but it doesn't look like the
>> > interrupts are enabled
>> > in the functions where you added Asserts in the patch. So, my changes
>> > don't fix the problem.
>> > My analysis would have been correct if the interrupts were enabled,
>> > but it looks it's not the case.
>> >
>> > Still, a problem exists somewhere .. _Chain_Append_unprotected fails
>> > and the task starves as a result.
>> > If it's not interrupts, I have to think again what could produce the
>> > failure. (any idea/hint here is welcome :) )
>> >
>> > Also, during my tests I even saw a crash (probably not related to this
>> > issue). Call stack looks like this
>> > Thread #1 (Suspended:Signal:SIGINT:Interrupt)
>> > _ARMV7M_Exception_default() at armv7m-exception-default.c:25 0x805aff0
>> > <signal_handler_called>() at 0xfffffffd
>> > _Configuration_Scheduler_priority_dflt() at 0x2400063c
>>
>> What is signal_handler_called()?
>>
>> --
>> 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/20190402/4f9cddcb/attachment-0002.html>
More information about the users
mailing list