From owner-freebsd-hackers Thu Dec 27 22:47:37 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from iguana.icir.org (iguana.icir.org [192.150.187.36]) by hub.freebsd.org (Postfix) with ESMTP id 8DCF137B416 for ; Thu, 27 Dec 2001 22:47:28 -0800 (PST) Received: (from rizzo@localhost) by iguana.icir.org (8.11.3/8.11.1) id fBS6lRs03720; Thu, 27 Dec 2001 22:47:27 -0800 (PST) (envelope-from rizzo) Date: Thu, 27 Dec 2001 22:47:27 -0800 From: Luigi Rizzo To: sridharv@ufl.edu Cc: hackers@FreeBSD.ORG Subject: Re: IP queue question Message-ID: <20011227224726.A3662@iguana.icir.org> References: <200112280640.BAA01182@anansi.vpha.health.ufl.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200112280640.BAA01182@anansi.vpha.health.ufl.edu> User-Agent: Mutt/1.3.23i Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Hi, FreeBSD uses a single queue, but as long as you make sure that you do not fill the queue with packets coming from a single interface, you can still give some fairness to the system. Recent "DEVICE_POLLING" code in -current (hopefully going into -stable at some point) does exactly this -- an alternative way, which is not terribly hard to implement, could be to put packets from each interface into a separate queue as Comer suggests, and then going round-robin on these queues upon the software interrupt. As for the soft interrupt going away soon, this won't happen, there are pros and cons for using delayed processing so the goal is to augment the mechanism with inline processing, not replace it. cheers luigi On Fri, Dec 28, 2001 at 01:40:00AM -0500, sridharv@ufl.edu wrote: > I was reading TCP/IP Vol 2 by douglas comer. In that > he has one queue for each interface from which the IP > layer processes the incoming datagrams. He has used > round-robin for fairness. I checked up the BSD code > and it seems to use only one queue 'ipintrq'. The > ethernet driver places the mbuf in this queue for an > IP payload. Comer has also asked a review question > pertaining to the disadvantage of having a single > queue ( which i presume inhibits fair scheduling and > stuff) > Have I interpreted the code correctly? Y is this so in > BSD? > Also when I took a look at FreeBSD ipinput code the > ipintr function which handles the software interrupt > had a comment which said " to go away sometime soon" . > Why and what is the alternative? > > The fastest way to change is to laugh at your own > folly - Who moved my cheese > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message