I have a simple interrupt that is triggered by a GPIO-input. The IRQ only increments a variable and returns. When I turn the frequency of the interrupts up to somewhere around 10-20 kHz, the system becomes unresponsive. I measure the CPU-load using top
while turning the frequency up, but there is no significant change in any of the metrics from the top
command.
So the processor CPU gets loaded, but I can't measure it with top
!
How is top
making its measurement? How come the very frequent interrupt isn't visible?
How can I measure the impact the interrupt has on the overall performance of the system?
EDIT
By setting the CPU-frequency governor to "performance", and setting the frequency to static 1GHz, I was able to get the interrupt frequency up to 150kHz, before the processor crashed..
By setting the CPU-frequency governor to "performance", and setting the frequency to static 1GHz, I was able to get the interrupt frequency up to 150kHz, before the processor crashed.. The "intr/s" value of mpstat does infact scale with the interrupt frequency. It shows 860.90 at an interrupt frequency on 1 Hz, and 1959.68 at an interrupt frequency on 150kHz.
– Wiingaard Nov 23 '15 at 15:36