[TriLUG] scheduling of reception of packets by a "protocol stack"
James Olin Oden
james.oden at gmail.com
Sat Jun 14 11:13:34 EDT 2008
So here is the really simple high level problem I'm seeing. A group
of developers have developed a protocol that sits on top of an
ethernet driver (e1000). When the ethernet driver hands off the
packet it received to the protocol it seems to be always running the
protocols callback on the same processor its bottom end received the
packet upon. In this case due to some heavy in kernel processing (I
know bad idea, but sometimes you end up here) this ends up saturating
the processing capability of this lone processor.
So here are my questions:
1) How does the kernel schedule the hand off of a packet to a
protocol from its layer 2 drivers?
2) Where is the code that handles this scheduling in the kernel source?
3) Where else might I ask this question? I'm trying to avoid the
linux kernel list for various reasons, but if there is a smaller
list where newbies to linux kernel networking might ask
questions I'd be pleased to know that.
More information about the TriLUG