On 10/9/07, Douglas A. Tutty <dtutty@porchlight.ca> wrote:
actually, i think henning wanted to say that the network stack runs in
no threads. :)
the stack runs entirely as interrupts. if there were a thread, we
could add another, but going from 0 to 1 is more work than 1 to 2.
networking workloads do not always divide up among CPUs nicely.
assuming the code is written, just turning 2 or more CPUs loose on a
stream of packets is likely to result in reordering, which is bad. to
avoid reordering, you need lots of queueing, which hurts performance
and drives up latency. the problem is unfortunately not as simple as
add a lock here, a thread there, and presto.