From owner-freebsd-arch@freebsd.org Thu Oct 4 17:52:13 2018 Return-Path: Delivered-To: freebsd-arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2B3D910B4A18 for ; Thu, 4 Oct 2018 17:52:13 +0000 (UTC) (envelope-from bakul@bitblocks.com) Received: from mail.bitblocks.com (ns1.bitblocks.com [173.228.5.8]) by mx1.freebsd.org (Postfix) with ESMTP id BC4887BF10 for ; Thu, 4 Oct 2018 17:52:12 +0000 (UTC) (envelope-from bakul@bitblocks.com) Received: from bitblocks.com (localhost [127.0.0.1]) by mail.bitblocks.com (Postfix) with ESMTP id EA3E2156E40C; Thu, 4 Oct 2018 10:51:57 -0700 (PDT) From: Bakul Shah To: Warner Losh cc: "freebsd-arch@freebsd.org" Subject: Re: FCP-0101: Deprecating most 10/100 Ethernet drivers In-reply-to: Your message of "Thu, 04 Oct 2018 11:30:35 -0600." References: <20181003210516.GA71565@spindle.one-eyed-alien.net> <20181004172420.F08F5156E40C@mail.bitblocks.com> Comments: In-reply-to Warner Losh message dated "Thu, 04 Oct 2018 11:30:35 -0600." MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <22183.1538675517.1@bitblocks.com> Date: Thu, 04 Oct 2018 10:51:57 -0700 Message-Id: <20181004175204.EA3E2156E40C@mail.bitblocks.com> X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Oct 2018 17:52:13 -0000 On Thu, 04 Oct 2018 11:30:35 -0600 Warner Losh wrote: > > On Thu, Oct 4, 2018 at 11:25 AM Bakul Shah wrote: > > > On Wed, 03 Oct 2018 21:05:16 -0000 Brooks Davis > > wrote: > > > > > > The current list of drivers slated for REMOVAL is: > > > > > > ae, bfe, bm, cs, dme, ed, ep, ex, fe, pcn, rl, sf, smc, sn, > > > ste, tl, tx, txp, vx, wb, xe > > > > > > The current list of drivers that will STAY in the tree is: > > > > > > dc, ffec, fxpl, hme, le, sis, vr, xl > > > > What is the disposition of drivers not on either list? > > > > Apart from de, what are they? I have re on on the motherboard on one machine. Granted this is a very dumb test but... cd /usr/src/dev for a in *; do if [ -e $a/if_$a.c ] ; then echo $a; fi; done | wc -l 86 > > > 10 and 100 megabit Ethernet drivers are largely irrelevant today > > > and we have a significant number of them in the tree. The ones that > > > are no longer used and/or are not known to be working need to be > > > removed due to the significant ongoing 'tax' on new development. > > > > I don't understand why there is a "significant ongoing 'tax' > > on new development" for old NICs. Can the internal MI<->MD > > interface be evolved in the direction where the MD drivers for > > old h/w "just work"? Or is it a hopeless task? > > > > There's two problems. One is that the current APIs are very much setup for > cut and paste driver construction. This leads to many drivers needing to be > changed more often than necessary as the APIs are evolved. The second is > the nature of the hardware has changed. We've gone from devices that can > handle at most a single packet at the same time to drives that can handle > thousands with some of the TCP stack offloaded into the card. This wide > range of hardware is difficult to program for with the current stack. iflib > is supposed to help (which is the MI/MD thing you're talking about), but in > the end it can likely help only so much before support for old cards holds > back adaptation of new features for new cards. Taken together, the old NICs > in the tree represent a real burden to people trying to innovate (or even > just bug fix) in this area. Add to that the inability to actually test the > hardware in any meaningful way, and you have a situation that needs to > change. Thanks for the explanation.