Interrupt Latencies?
Posted Feb 3, 2006 0:34 UTC (Fri) by
xoddam (subscriber, #2322)
In reply to:
Interrupt Latencies? by simlo
Parent article:
Van Jacobson's network channels
> This way work is moved from kernel threads into userspace and
> into the interrupt handler.
Packet handling isn't currently done in kernel threads, it's done in
tasklets (OK, tasklets do run in a softirqd thread with the RT patch).
That's a great way to hog a CPU, and the channel implementation fixes the
problem by passing work to a thread, just as you suggest! In the slides
you'll see that the example channel 'producer' code wakes the listening
thread, so the 'consumer' is necessarily a task (but not necessarily a
userspace one).
An O(log n) search algorithm in the isr would indeed have high latency
with a very large number of channels to choose from -- but there is no
reason why the isr would have to select the final target amongst millions
of user sockets; channels are just as good for intermediate queueing
within the kernel as they are for delivery to userspace.
(
Log in to post comments)