> Closer inspection revealed that both the ifnet ifqueues as well as the
> driver transmission chain are always empty upon enqueue/dequeue. Thus, even
> though my fancy queuing code is executed, it has no effect, since there
> never are any queues.
>
> Can someone shed some light on if this is expected behavior? Wouldn't that
> mean that as packets are being generated by the socket layer, they are
> handed down through the kernel to the driver one-by-one, incurring at
> interrupt for each packet? Or am I missing the obvious?
Packets are pushed down as far as they can go, ie. if the card has
resources available to take another packet you'll go all the way into the
device driver. It's not until you actually run the card out of resources
that the various queues start to fill up.
The actual interrupt rate depends on the specific card; many of the
better cards have interrupt-reduction features that eg. only signal an
interrupt when they have completed a set of transmitted packets, or no
more than once every Nms, etc. Otherwise, you're going to take one
interrupt per packet anyway.
--
... every activity meets with opposition, everyone who acts has his
rivals and unfortunately opponents also. But not because people want
to be opponents, rather because the tasks and relationships force
people to take different points of view. [Dr. Fritz Todt]
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message