Date: Tue, 19 Sep 2000 22:35:33 -0700 From: Mike Smith <msmith@freebsd.org> To: Lars Eggert <larse@ISI.EDU> Cc: hackers@freebsd.org Subject: Re: implementing idle-time networking Message-ID: <200009200535.WAA02197@mass.osd.bsdi.com> In-Reply-To: Your message of "Mon, 18 Sep 2000 18:11:53 PDT." <39C6BD59.4C1AFD02@isi.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
> 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 majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200009200535.WAA02197>