From owner-freebsd-stable@FreeBSD.ORG Tue Oct 30 17:01:52 2007 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EEE4716A49E for ; Tue, 30 Oct 2007 17:01:51 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.187]) by mx1.freebsd.org (Postfix) with ESMTP id B5AD813C4C6 for ; Tue, 30 Oct 2007 17:01:49 +0000 (UTC) (envelope-from jfvogel@gmail.com) Received: by nf-out-0910.google.com with SMTP id b2so1578353nfb for ; Tue, 30 Oct 2007 10:01:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=kPLGWcai8aRj5WZyjPn6cbPO1RmTlthZ2RkAnual+aE=; b=fG7G2LIh4tnEtoRArCGHm5OmLtuVa2t7Th3Jm8aOjDOODpOySi0QmsBv4BS6R41f4d2mLeP+6TRd+wg6T+67pDswXp1RhW/LRJ+WuLm0MINKZkMtZJ8kqVx2H09THM2zbH7ohyM+Kmor+0d/2rEysnLN9fGnx65GyuD07tEZM+Q= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=dyp3I86mw8EaBts1Gph9EUO/eMWUZbNlIrMBfcPuuNMGi/nU/GZ3EfAnwriOucCUfDt7wdTXjCD29qgczzeclYNxPpDnSGpNT9H5/nhzzyTX2g9R8lbwkVCFZI9CYI4gVjqtm06E6M/51f8vkzArmR/avMeAAlt5mVVE3D8WEYg= Received: by 10.86.90.2 with SMTP id n2mr5818352fgb.1193763708179; Tue, 30 Oct 2007 10:01:48 -0700 (PDT) Received: by 10.86.100.19 with HTTP; Tue, 30 Oct 2007 10:01:48 -0700 (PDT) Message-ID: <2a41acea0710301001k60442b26uae186209ac484780@mail.gmail.com> Date: Tue, 30 Oct 2007 10:01:48 -0700 From: "Jack Vogel" To: "gnn@freebsd.org" In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <2a41acea0710291045m6f1d2acw78c26a455ea3894d@mail.gmail.com> Cc: "freebsd-net@freebsd.org" , FreeBSD Current , FreeBSD Stable List Subject: Re: RFC: Evolution of the em driver X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Oct 2007 17:01:52 -0000 On 10/30/07, gnn@freebsd.org wrote: > At Mon, 29 Oct 2007 10:45:17 -0700, > Jack Vogel wrote: > > > > I have an important decision to make and I thought rather than just make > > it and spring it on you I'd present the issues and see what opinions were. > > > > Our newer hardware uses new features that, more and more, require > > parallel code paths in the driver. For instance, the 82575 (Zoar) uses > > what are called 'advanced descriptors', this means different TX path. > > The 7.0 em driver has this support in it, it just uses a function pointer > > to handle it. > > > > When I add in multiqueue/RSS support it will add even more code > > that functions this way. > > > > What the Linux team did was to split the newer code into a standalone > > driver, they call it 'igb'. I had originally resisted doing this, but with > > the development I have been working on the past month I am starting > > to wonder if it might not be best to follow them. > > > > I see 3 possibilities and I'd like feedback, which would you prefer if > > you have a preference and why. > > > > First, keep the driver as is and just live with multiple code paths > > and features, possibly #ifdef'ed as they appear. > > > > Second, split the driver as Linux has into em and igb. The added > > question then is how to split it, Linux made the line the use of > > advanced descriptors, so Zoar and after, but I could also see a > > case for having everything PCI-E/MSI capable being in the new > > driver. > > > > Third, sort of a half-way approach, split up code but not the > > driver, in other words offer different source files that can be > > compiled into the driver, so you could have the one big jumbo > > driver with all in there, or one that will only work with a subset > > of adapters. This one would probably be the most work, because > > its a new approach. > > As you're the main maintainer it's your choice. Whatever is easiest > for you and gives us the most readable code. Thanks, I know its my choice, I was just looking for opinions about the options I had to chose from :) I think I've had enough feedback to decide, I think the seperate driver is the direction. I need to give some thought to where to make the split. Thanks for everyone's feedback. Jack