QNX RTOS v4 Knowledge Base
QNX RTOS v4 Knowledge Base
Title |
What does the IRQ of -1 mean when using the sin utility? |
Ref. No. |
QNX.000009574 |
Category(ies) |
Kernel |
Issue |
When we run the "sin ir" we see a bunch of processes attached to irq -1. What does this mean?
eg. IRQ PID PROGRAM CS:IP DS -1 4 /bin/Net 0015:004540 001D -1 24 //107/bin/Dev32 0005:005760 000D -1 30 //107/bin/Dev32.ansi 0005:005DC0 000D -1 38 //107/bin/Dev32.ser 0005:0024FC 000D 0 1 sys/Proc32 00F0:004CB3 00F8 0 4 /bin/Net 0015:0045EB 001D 1 30 //107/bin/Dev32.ansi 0005:00690C 000D 3 38 //107/bin/Dev32.ser 0005:00177C 000D 4 38 //107/bin/Dev32.ser 0005:0017A4 000D 11 4 /bin/Net 0015:0049E8 001D 12 21710 //107/bin/Input 0005:01436F 000D 13 1 sys/Proc32 00F0:004C77 00F8 14 65 //107/bin/Fsys.eide 0005:004860 000D
|
Solution |
-1 is the synthetic IRQ which is generated based on the timer irq 0. It will "fire" every 50ms and the kernel will call any handlers that are attached to this interrupt number.
eg. If your timer interrupt is set for 10msec, then every 5th timer interrupt, the handlers for -1 are called. In general, we discourage its use in favor of timer_create/timer_settime types of timers as it isn't a good idea if you are doing power management. If you are using -1 then the kernel needs to wake up the cpu every 50msecs and if a process doesn't need it they tend to leave it registered anyway. With a 50msec timer_create/timer_settime type of timer people at least tend to cancel the timer when not in use. |
|