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