RTEMS PowerPC progress (Not).

Nick Thomas nick.thomas at pixsan.com
Mon May 31 16:27:47 UTC 2010


> > 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?


Regards

Nick




More information about the users mailing list