Re: [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch

Ingo Molnar
2004-07-21T21:37:21Z

* Scott Wood <scott@timesys.com> wrote:

> On Wed, Jul 21, 2004 at 10:52:46AM +0200, Ingo Molnar wrote:
> > this, if enabled, causes all softirqs to be processed within ksoftirqd,
> > and it also breaks out of the softirq loop if preemption of ksoftirqd
> > has been triggered by a higher-prio task.
>
> You'll still have the latency of finishing the currently executing
> softirq, which often includes a loop itself (whose break condition is
> based on not hogging the CPU, rather than letting higher priority
> tasks in as soon as possible).

well, i share your desire for lower latencies but this is what the
semantics of softirqs require.

but it's really easy to break out of softirq processing early and
restart it later. All it needs in net_rx_action() is to:

if (softirq_defer && need_resched())
goto softnet_break;

since the network softirq code is already latency-aware. The same
'lock-break'-alike methods can be used for other softirq code too.

Ingo