On Sun, 2004-09-12 at 18:07, Andrea Arcangeli wrote:
On Sun, Sep 12, 2004 at 05:36:41PM -0400, Lee Revell wrote:
But in this case the hardirq handler can run for 2ms, which caused a
scheduler latency problem, because nothing could run but other IRQs. The IRQ threading in Ingo's patches solves the problem, and seems to me
to be the correct solution.
the irq threading must have a cost, doesn't it? I doubt you want to
offload irqs to a kernel thread on a server, *that* would be slow (irq
nesting is zerocost compared to scheduling a kernel thread).
Yes, on a server you would probably disable threading for the disk and
network IRQs (the VP patch lets you set this via /proc). This feature
effectively gives you IPLs on Linux, albeit only two of them. For
example to prevent heavy traffic on one network interface from impacting
the latency of the other, you could enable threading for the first and
disable it for the second.
I am still unsure why the IDE i/o completion is the one place that
breaks the assumption that hardirq handlers execute quickly.