Out of interrupts events!

Hello everybody.

I have an embedded OS image (QNX 6.3, x86) running in an Athena CPU board. After booting up and waiting some minutes without any application running, the system get hang and begins to continuously display on the screen the message “Out of interrupts events!”.

After booting up, and before the system hanging up, the pidin utility gave the following result:

pid tid name prio STATE Blocked
1 1 procnto 0f READY
1 2 procnto 255r RECEIVE 1
1 3 procnto 255r RECEIVE 1
1 4 procnto 10r RECEIVE 1
1 5 procnto 10r RUNNING
1 6 procnto 10r RECEIVE 1
1 7 procnto 10r RECEIVE 1
1 8 procnto 10r RECEIVE 1
1 9 procnto 10r RECEIVE 1
1 10 procnto 10r RECEIVE 1
4098 1 proc/boot/pci-bios 10r RECEIVE 1
4099 1 proc/boot/devc-con 10r RECEIVE 1
4101 1 roc/boot/devb-eide 10r SIGWAITINFO
4101 2 roc/boot/devb-eide 21r RECEIVE 1
4101 3 roc/boot/devb-eide 10r RECEIVE 7
4101 4 roc/boot/devb-eide 10r RECEIVE 4
4101 7 roc/boot/devb-eide 10r RECEIVE 4
4101 8 roc/boot/devb-eide 10r RECEIVE 4
4101 9 roc/boot/devb-eide 10r RECEIVE 4
24580 1 proc/boot/slogger 10r RECEIVE 1
24582 1 proc/boot/pipe 10r SIGWAITINFO
24582 2 proc/boot/pipe 10r RECEIVE 1
24582 3 proc/boot/pipe 10r RECEIVE 1
24582 4 proc/boot/pipe 10r RECEIVE 1
24583 1 proc/boot/mqueue 10r RECEIVE 1
24584 1 sbin/devc-pty 10r RECEIVE 1
24586 1 bin/tinit 10r REPLY 1
57356 1 sbin/devb-ram 10r SIGWAITINFO
57356 2 sbin/devb-ram 21r RECEIVE 1
57356 3 sbin/devb-ram 10r RECEIVE 7
57356 4 sbin/devb-ram 10r RECEIVE 4
57356 5 sbin/devb-ram 10r RECEIVE 4
57356 6 sbin/devb-ram 10r RECEIVE 4
90125 1 sbin/devc-ser8250 10r RECEIVE 1
90127 1 bin/io-net 10r SIGWAITINFO
90127 2 bin/io-net 21r RECEIVE 5
90127 3 bin/io-net 10r RECEIVE 1
90127 4 bin/io-net 10r RECEIVE 1
90127 5 bin/io-net 10r RECEIVE 1
90127 6 bin/io-net 20r RECEIVE 9
90127 7 bin/io-net 10r RECEIVE 25
90127 8 bin/io-net 10r CONDVAR b827be34
90127 9 bin/io-net 9r RECEIVE 1
151569 1 bin/inetd 10r SIGWAITINFO
184329 1 bin/sh 10r SIGSUSPEND
241675 1 bin/pidin 10r REPLY 1

My bootscript is the following:

#Variables initialization


procmgr_symlink …/…/proc/boot/libc.so.2 /usr/lib/ldqnx.so.2

display_msg “Starting…”


display_msg “Starting pci-bios server…”
pci-bios &
waitfor /dev/pci

display_msg “Starting up console driver…”
devc-con -n4 &
waitfor /dev/con1
waitfor /dev/con2
reopen /dev/con1
sleep 1

display_msg “Starting EIDE driver”
devb-eide cam quiet blk auto=partition eide master
waitfor /dev/hd0t77
mount -t qnx4 /dev/hd0t77 /

slogger &
waitfor /dev/slog

display_msg “Starting pipe manager…”
pipe &
waitfor /dev/pipe

Some common servers

mqueue &
devc-pty &

display_msg “Starting sysinit…”
sh -c /etc/rc.d/rc.sysinit

display_msg “End of boot process”

Does anybody know what is the meaning of this message?
Whats happening?

Thanks in advance.


Do you get the message “Starting sysinit…” and if so, What is in your rc.sysinit?

Yes, the sysinit file is executed fine. Its content is:

#ifdef __USAGE


#This script sets up your environment & starts system services


echo Entering sysinit

Add the system utilities to the path…

export PATH=/sbin:/usr/sbin:/bin:/usr/bin

A usefull function

function waitfor {
typeset -i i=0
while test $i -lt 60 -a ! $1 -ef $1 ; do
sleep 1;
let i=i+1;
unset i

Start random, this is needed for things like OpenSSH

random -t

Find the hostname

if test -z $HOSTNAME; then
HOSTNAME=$(hostname -s)
if test $HOSTNAME == localhost; then

See if there is a host specifiy etc directory

if ! test -z “$HOSTNAME”; then
if test -x /etc/host_cfg/$HOSTNAME; then

if test -d /var/dumps; then
dumper -d /var/dumps

if test ! -z “$etc_host” -a -x $etc_host/rc.d/rc.local; then
echo “Starting extra run commands for $(hostname)”
. $etc_host/rc.d/rc.local
elif test -x /etc/rc.d/rc.local; then
echo “Starting extra run commands”

Change the path to back before starting init

if test ! -z “$SAFEMODE”; then
unset P

if test -f /etc/system/config/nophoton; then
unset P

echo “Login in”
PATH=/bin:/usr/bin exec which tinit $P LOGNAME=root

print Unable to init, starting a shell

echo “Starting a shell”

exec sh
exec fesh

print Really can’t do anything…

echo “End of sysinit”

I use also a rc.local script:

echo Entering rc.local …

Mounitng a Ram-Disk

echo Mounting Ram-Disk
devb-ram disk name=RAM ram capacity=8192
waitfor /dev/RAM0t77
mount -t qnx4 /dev/RAM0t77 /home/ramdisk

Athena serial ports

echo Configuring serial ports
devc-ser8250 -u1 3f8,4 -u2 2f8,3 -u3 3e8,9 -u4 2e8,15 &


echo Configuring network devices
io-net -d ns83815 did=0x20,vid=0x100b -p tcpip
waitfor /dev/io-net/en0
mount -Tio-net npm-qnet-compat.so

echo Configuring network communications
netmanager -f /etc/net.cfg
sleep 1
inetd &
sleep 3

echo Exiting rc.local

Is very strange since this problen arise suddenly whith no application running and many minutes after the booting process was finished. The system works in console mode without Photon.

Any idea?


This message means a ISR is generating events and the program associated with it isn’t fast enough to process all the events. The interrupt event queue is getting full.


Your best bet is to stop programs one at a time until you figure out which one is the culprit in terms of getting too many interrupts.

For example, start by commenting out the Network stuff (io-net, netmanager etc) and see if the problem still arises. Then comment out the serial driver and so on.



I think trying what you suggest it’s a good way. Let me test and see what I obtain.

Thanks everybody.