* Nick Piggin <nickpiggin(a)yahoo.com.au> wrote:
Given that we're looking for something acceptable
for 2.6, how about
adding
if (rt_task(current))
kick ksoftirqd instead
Otherwise, what is the performance penalty of doing all softirq
processing from ksoftirqd?
this is insufficient too. An RT task might be _waiting to run_ and
spending our time in a non-RT context (including the idle task) doing
softirq processing might delay it indefinitely.
what we could do is to add a rq->nr_running_rt and do the deferred
softirq processing unconditionally if (rq->nr_running_rt). I'd still add
a sysctl to make it unconditional for user processes too - if someone
really cares about latency and doesnt want to make all his tasks RT.
I'll code this up for the next version of the patch.
Ingo