Instead of 'nice'ing ksoftirqd we can use the policy hint of SCHED_BATCH which specifies it as not requiring low latency. This increases the cpu use possible under very heavy softirq traffic (such as network loads) and decreases the latency that might otherwise be seen (such as keyboard input under heavy cpu load on slow machines). Signed-off-by: Con Kolivas --- kernel/softirq.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) Index: linux-2.6.20-ck1/kernel/softirq.c =================================================================== --- linux-2.6.20-ck1.orig/kernel/softirq.c 2007-02-05 22:52:04.000000000 +1100 +++ linux-2.6.20-ck1/kernel/softirq.c 2007-02-16 19:01:31.000000000 +1100 @@ -469,7 +469,9 @@ void __init softirq_init(void) static int ksoftirqd(void * __bind_cpu) { - set_user_nice(current, 19); + struct sched_param param = { .sched_priority = 0 }; + + sched_setscheduler(current, SCHED_BATCH, ¶m); current->flags |= PF_NOFREEZE; set_current_state(TASK_INTERRUPTIBLE);