I've noticed an puzzling behavior in my system and wanted to start a discussion about it here.
I have a PowerPC running in a Virtex 4 FX and it has two interrupt controllers. One set of interrupts are 'critical', and the other set is not. Some of the non-critical interrupts are from timers servicing low priority tasks.
I have a very regular critical interrupt occurring every 20uS. The code running in the ISR runs for about 3uS. (timed with a scope and a debug pin being wiggled by code. The wiggling code takes about 200nS)
If the processor is in the middle of servicing a non-critical interrupt and a critical interrupt occurs (happens fairly often), the critical interrupt code takes about 5uS to execute. I cannot figure out why the critical interrupt code runs "slower" depending on whether or not we were servicing a non-critical interrupt.