RTEMS PowerPC progress (Not).

Joel Sherrill joel.sherrill at OARcorp.com
Mon May 31 19:42:19 UTC 2010


On 05/31/2010 11:27 AM, Nick Thomas wrote:
>    
>>> I spoke too soon :( .
>>> I have just seen the _Thread_Dispatch_disable_level go to -1 !
>>>
>>> Are there any conditions where _Thread_Dispatch_disable_level going
>>>        
>> negative
>>      
>>> is valid?
>>>        
>> AFAIK _Thread_Dispatch_disable_level should NEVER get negative, so when
>> you detect it negative, something has gone seriously wrong before.
>> Unfortunately you can't be sure that things went wrong during the
>> interrupt/dispatch where you detect that condition.
>>
>>      
> I have added an rtems_fatal_error_occurred(some_num) call in the
> _Thread_Enable_dispatch in threadispatch.c .
>
> The function normally looks like this:
>
> void _Thread_Enable_dispatch( void )
> {
>    if ( --_Thread_Dispatch_disable_level )
>      return;
>    _Thread_Dispatch();
> }
>
> Now, when _Thread_Dispatch_disable_level is zero on entry to this func, it
> will stop, and through the call stack I can see how we got to where we are.
>
> So far, it has happened 6 times today, and each time it has come through
> rtems_timer_server_fire_after() .
> That can't be just coincidence - can it?
>
>    
The timer server task has been worked over a couple of
times since 4.7.x.  There was a bug which sounds just like
this not that you say timer server.  You should track the
source in CVS for it to see what has been fixed.

It would be worth backporting the 4.9 timer server code
and supporting directives.  It may even be worth backporting
the version on the head.

It would be better to upgrade but you have eliminated that
option. :)
--joel
> Regards
>
> Nick
>
> _______________________________________________
> rtems-users mailing list
> rtems-users at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-users
>    




More information about the users mailing list