From owner-freebsd-arch Tue Dec 18 10:20:16 2001 Delivered-To: freebsd-arch@freebsd.org Received: from rwcrmhc52.attbi.com (rwcrmhc52.attbi.com [216.148.227.88]) by hub.freebsd.org (Postfix) with ESMTP id E668737B417 for ; Tue, 18 Dec 2001 10:20:09 -0800 (PST) Received: from InterJet.elischer.org ([12.232.206.8]) by rwcrmhc52.attbi.com (InterMail vM.4.01.03.27 201-229-121-127-20010626) with ESMTP id <20011218182009.JKKA6450.rwcrmhc52.attbi.com@InterJet.elischer.org>; Tue, 18 Dec 2001 18:20:09 +0000 Received: from localhost (localhost.elischer.org [127.0.0.1]) by InterJet.elischer.org (8.9.1a/8.9.1) with ESMTP id KAA40400; Tue, 18 Dec 2001 10:19:25 -0800 (PST) Date: Tue, 18 Dec 2001 10:19:23 -0800 (PST) From: Julian Elischer To: Jonathan Lemon Cc: Bruce Evans , Luigi Rizzo , arch@FreeBSD.ORG Subject: Re: swi_net In-Reply-To: <20011218104750.M377@prism.flugsvamp.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Netgraph in -current uses netisr routines to run its dequeueing system (different to -stable which uses it as a netisr from interrupt scope as per normal). On Tue, 18 Dec 2001, Jonathan Lemon wrote: > On Wed, Dec 19, 2001 at 01:25:58AM +1100, Bruce Evans wrote: > > On Thu, 13 Dec 2001, Luigi Rizzo wrote: > > > > > we have 2 slightly different versions of swi_net in -current and > > > -stable, listed below (STABLE/Alpha is approximately the same as > > > CURRENT). > > > > > > I like a lot the semantics of the version in -stable, because it > > > enforces a strict priority in the execution of soft handlers > > > (remember they are not preemptable), even when schednetisr(FOO) is > > > called within one of the handlers. > > > > I prefer the -stable version too, but I think the strict priority > > doesn't make much difference. Anyway, it's not completely strict, > > because lower priority handlers are not preemptable. > > I'm planning on revising swi_net so that it is possible to run all > network processing under the device interrupt instead of deferring > things to a netisr(). This also has the advantage of eliminating all > ipintr() style loops, as packet dequeueing is done in a centralized > place, and makes it easier to bound the amount of work which is done. > (Actually, the interface queues and netisrs are not completely gone; > it is possible to switch back and forth dynamically) > > I have this working on -stable (the more difficult of the two, IMO) > and it should be easy to extend this to -current. > > This will permit removal of Luigi's ether_pollmore() and associated > cruft, since all packet handling relating to polling would be run in > a single netisr 'thread'. > -- > Jonathan > > > PS: > > > -current is also missing the optimization of initializing the table with > > dummies so that it doesn't need to check the pointer. Unexpected netisrs > > could be handled even better by panicing for them. > > Yeah, I saw that. However, panic'ing in a netisr (which I did several > times over the weekend) appears to produce a stream of faults, eventually > wedging the box so that it needs a powercycle. > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-arch" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message