I have a constant 5% and more CPU time spent in handling soft interrupts. Doe to that, the
ksoftirqd is running almost constantly, but is using a very small amount of CPU (less than 1%).
However, regardless of this heavy load there is still a fairly high percentage of idle time (30% and more)(this is the
top value for idle, or the idle from
Some background (However, I would like a conceptual answer, not one that solves the problem on my system). The system is used for routing (
echo 1 > /proc/sys/net/ipv4/ip_forward) and NAT with iptables, and runs additional user space application not related to networking. Also, the load average is always above 1 (it's a single core processor)(this is the value Load average from
top, or the output of
What is preventing the system to use the idle time to prevent the handling of soft interrupts from being missed?
I would expect to see the idle time (id in top) be used for serving software interrupts (si in top) and not have the processor miss tasks and be idle at the same time.