Date: Tue, 11 Dec 2012 05:05:40 -0800 (PST) From: Barney Cordoba <barney_cordoba@yahoo.com> To: Jack Vogel <jfvogel@gmail.com>, Gleb Smirnoff <glebius@FreeBSD.org> Cc: freebsd-net@FreeBSD.org, "Clement Hermann \(nodens\)" <nodens2099@gmail.com> Subject: Re: igb and ALTQ in 9.1-rc3 Message-ID: <1355231140.51621.YahooMailClassic@web121603.mail.ne1.yahoo.com> In-Reply-To: <20121211075853.GU48639@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--- On Tue, 12/11/12, Gleb Smirnoff <glebius@FreeBSD.org> wrote: > From: Gleb Smirnoff <glebius@FreeBSD.org> > Subject: Re: igb and ALTQ in 9.1-rc3 > To: "Jack Vogel" <jfvogel@gmail.com> > Cc: "Clement Hermann (nodens)" <nodens2099@gmail.com>, "Barney Cordoba" <barney_cordoba@yahoo.com>, freebsd-net@FreeBSD.org > Date: Tuesday, December 11, 2012, 2:58 AM > On Mon, Dec 10, 2012 at 03:31:19PM > -0800, Jack Vogel wrote: > J> UH, maybe asking the owner of the driver would help > :) > J> > J> ... and no, I've never been aware of doing anything to > stop supporting altq > J> so you wouldn't see any commits. If there's something > in the altq code or > J> support (which I have nothing to do with) that caused > this no-one informed > J> me. > > Switching from if_start to if_transmit effectively disables > ALTQ support. > > AFAIR, there is some magic implemented in other drivers that > makes them > modern (that means using if_transmit), but still capable to > switch to queueing > mode if SIOCADDALTQ was casted upon them. > It seems pretty difficult to say that something is compatible with something else if it hasn't been tested in a few years. It seems to me that ATLQ is the one that should handle if_transmit. although it's a good argument for having a raw "send" function in drivers. Ethernet drivers don't need more than a send() routing that loads a packet into the ring. The decision on what to do if you can't queue a packet should be in the network layer, if we must still call things layers. "start" is a leftover from a day when you stuffed a buffer and waited for an interrupt to stuff in another. The whole idea is antiquated. Imagine drivers that pull packets off of a card and simply queue it; and that you simply submit a packet to be queued for transmit. Instead of trying to find 35 programmers that understand all of the lock BS, you only need to have a couple. I always disable all of the gobbledegook like checksum offloading. They just muddy the water and have very little effect on performance. A modern cpu can do a checksum as fast as you can manage the "capabilities" without disrupting the processing path. With FreeBSD, every driver is an experience. Some suck so bad that they should come with a warning. The MSK driver is completely useless, as an example. BC
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1355231140.51621.YahooMailClassic>