Problems related to TOD_set and new problem with _Watchdog_Tickle (system hang).

Fabrizio Pirovano rtems.thysys at tiscalinet.it
Mon Sep 23 07:36:19 UTC 2002


Thanks to Chris & Joel Sherril   for the _TOD problem solution .
 
Now,  in  this side, all works fine.

Unfortunally we verify another problem:

In particular  system stress condition (a lot of traffic on Ethernet interface, a lot of qspi interrupts etc.... in our motorola 5272 target) 
all the rtems services related to system timer randomly hangs ! 
We found that, in  function  _Watchdog_Tickle  (file watchdogtickle.c),
the  variable the_watchdog->delta_interval is decremented without any control.
We verified that the system hangs because this variable  is decremented when is zero, and obviously, 
after decrementing it , the new value is the biggest long value.
For the particular rtems sw structure, all the elements list  following this,  will be checked
only after the timer corrupted will be expired causing system hang (with the exception of the rtems service not related with timers
that  continue to work fine). 
  

We was not be able to find the cause of this problem but we verified that if we modified the code in 
_Watchdog_Tickle  as

        if (the_watchdog->delta_interval)
            the_watchdog->delta_interval--;

all works fine.

We suppose that the problem is related to interrupt concurrence: one interrupt nested in tick interrupt routine that break   the code of 
watchdogtickle. 
We think that the problem is critical and the patch poposed is not a good solution. 

Can anyone confirm similar critical problem?


Thanks in advance


 Fabrizio Pirovano

 THYSYS s.r.l.

    Milan    Italy

pirovano.thysys at tiscalinet.it

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20020923/381dcdee/attachment.html>


More information about the users mailing list