>
> Anyway, is not it simply a deadlock in your application ?

I don't think so. Here is a list of all tasks:

~ # cat /proc/xenomai/stat 
CPU  PID    MSW        CSW        PF    STAT       %CPU  NAME
  0  0      0          7452       0     00500080   98.9  ROOT
  0  83     196        196        0     00300380    0.0  DOS4
  0  81     13         13         0     00300380    0.0  DOS5
  0  97     618        830        0     00300380    0.0  @WDG
  0  101    751        1127       0     00300380    0.0  HSSR
  0  128    1268       2186       0     00300380    0.0  DOS8
  0  129    1          1          0     00300380    0.0  @CGI
  0  130    7          10         0     00300182    0.0  LOG 
  0  131    1          2          0     00300184    0.0  IOXP
  0  142    20         42         0     00300380    0.0  KTMR
  0  151    1652       1901       0     00300380    0.0  Sdrv
  0  152    383        489        0     00300380    0.0  LApp
  0  156    0          1          0     00300380    0.0  DOS9
  0  0      0          14937556   0     00000000    1.0  IRQ16: [timer]

Most of them are in state 00300380, that means:
  XNSTARTED
  XNMAPPED
  XNRELAXED
  XNFPU
  XNSHADOW

For a deadlock I would expect all threads must be wait for a semaphore or 
something else (state flag XNPEND). However all tasks are freezed.

> Please check that Xenomai timer is still running by checking that
> its counter increases in cat /proc/xenomai/irq result.

That's the output:

~ # cat /proc/xenomai/irq 
IRQ         CPU0
 16:    14155140         [timer]
1027:        5233         [virtual]
~ # cat /proc/xenomai/irq 
IRQ         CPU0
 16:    14158294         [timer]
1027:        5233         [virtual]
~ # cat /proc/xenomai/irq 
IRQ         CPU0
 16:    14159556         [timer]
1027:        5233         [virtual]
~ # 

The time-IRQ (16) is still counting. However the IRQ 1027 - called "virtual" - 
is stopped when all xenomai tasks are freezed. Do you know for what that 
'virtual' IRQ is? 

> If Xenomai and Linux timers are shared (I believe they are on
> imx28), checking the same thing for Linux timer in /proc/interrupts
> is sufficient, Xenomai timer can not possibly be jammed if Linux
> timer still ticks.

Linux timer seem to run as well:

~ # cat /proc/interrupts 
           CPU0       
 16:      49931         -  MXS Timer Tick
 18:         61         -  mxs-dma
 19:          0         -  mxs-dma
 25:         11         -  mxs-mmc
 26:          0         -  mxs-spi
207:          0         -  mxs-lradc-touchscreen
208:          0         -  mxs-lradc-thresh0
209:          0         -  mxs-lradc-thresh1
210:          0         -  mxs-lradc-channel0
211:          0         -  mxs-lradc-channel1
212:          0         -  mxs-lradc-channel2
213:          0         -  mxs-lradc-channel3
214:          0         -  mxs-lradc-channel4
215:          0         -  mxs-lradc-channel5
216:          0         -  mxs-lradc-channel6
217:          0         -  mxs-lradc-channel7
218:          0         -  mxs-lradc-button0
219:          0         -  mxs-lradc-button1
220:          0         -  RTC alarm
224:         90         -  80072000.serial
225:       2982         -  uart-pl011
226:          0         -  ci13xxx_imx
227:      40138         -  800f0000.ethernet
Err:          0
~ # cat /proc/interrupts 
           CPU0       
 16:      49958         -  MXS Timer Tick
 18:         61         -  mxs-dma
 19:          0         -  mxs-dma
 25:         11         -  mxs-mmc
 26:          0         -  mxs-spi
207:          0         -  mxs-lradc-touchscreen
208:          0         -  mxs-lradc-thresh0
209:          0         -  mxs-lradc-thresh1
210:          0         -  mxs-lradc-channel0
211:          0         -  mxs-lradc-channel1
212:          0         -  mxs-lradc-channel2
213:          0         -  mxs-lradc-channel3
214:          0         -  mxs-lradc-channel4
215:          0         -  mxs-lradc-channel5
216:          0         -  mxs-lradc-channel6
217:          0         -  mxs-lradc-channel7
218:          0         -  mxs-lradc-button0
219:          0         -  mxs-lradc-button1
220:          0         -  RTC alarm
224:         90         -  80072000.serial
225:       3115         -  uart-pl011
226:          0         -  ci13xxx_imx
227:      40154         -  800f0000.ethernet
Err:          0
~ # 


Regards,
Christoph

_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to