I have written an interrupt handler in QNX 6.1, and through profiling have
discovered that the ISR-to-thread latency is ~4.7usec 99.8% of the time but
on occassion this latency jumps to 12usec – a 2.5x increase – and, more
often, various points in between.
Now, I have my suspicions I’m being pre-empted by higher-priority interrupts
considering my thread is FIFO-scheduled and has a higher priority than
anything else – what else would/could pre-empt it?
In QNX’s “Neutrino Microkernel” docs, in the “Interrupt Handling” section, it
“Since hardware interrupt priorities can be reassigned, the most
important interrupt in the system can be made the highest priority.”
How do I do this??? How do I even determine what priority my interrupt is
in relation to others???