On Thu, 2013-01-03 at 23:49 -0800, Eric Dumazet wrote:
In various network workloads, __do_softirq() latencies can be up
to 20 ms if HZ=1000, and 200 ms if HZ=100.
This patch changes the fallback to ksoftirqd condition to :
- A time limit of 2 ms.
[]
quoted hunk ↗ jump to hunk
diff --git a/kernel/softirq.c b/kernel/softirq.c
[]
+#define MAX_SOFTIRQ_TIME max(1, (2*HZ/1000))
And if HZ is 10000?
asmlinkage void __do_softirq(void)
{
[]
+ unsigned long end = jiffies + MAX_SOFTIRQ_TIME;
Perhaps MAX_SOFTIRQ_TIME should be
#define MAX_SOFTIRQ_TIME msecs_to_jiffies(2)
though it would be nicer if it were a compile time constant.