Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Dec 2001 10:19:23 -0800 (PST)
From:      Julian Elischer <julian@elischer.org>
To:        Jonathan Lemon <jlemon@flugsvamp.com>
Cc:        Bruce Evans <bde@zeta.org.au>, Luigi Rizzo <rizzo@aciri.org>, arch@FreeBSD.ORG
Subject:   Re: swi_net
Message-ID:  <Pine.BSF.4.21.0112181017000.36281-100000@InterJet.elischer.org>
In-Reply-To: <20011218104750.M377@prism.flugsvamp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0112181017000.36281-100000>