From owner-freebsd-net@FreeBSD.ORG Tue Dec 10 18:13:13 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id D540C5E7 for ; Tue, 10 Dec 2013 18:13:13 +0000 (UTC) Received: from mail-ig0-f174.google.com (mail-ig0-f174.google.com [209.85.213.174]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A3549127B for ; Tue, 10 Dec 2013 18:13:13 +0000 (UTC) Received: by mail-ig0-f174.google.com with SMTP id hk11so2634355igb.1 for ; Tue, 10 Dec 2013 10:13:07 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=a+TnKPDeNSIqtcXdmhqPw3aAt+zwT3oU0G+2iITBq+4=; b=BaySzKzE+K2tjnJ52JbKkk7Q6Qa1z8fUEJbuG3AieqMAGBTui0Lw6YYfyho6UAc0Rc h1lkiOS9gBnHCTy/1Sv9HGdCsmEx2V+5VkqU0rbHgd5Tzh0EbUVbhqCqAgi/QLmA/WMA 7/hJASZ1a0VIWmNg9ugwYuuuCMC5WiDtSXZyQ8Zh/F1D8x/ZH2aP4+y6tjFUlGbsrTpE mTtB/mexyJf/Ycp6PLZ79lD3Lphws0zJIfVQqBSP9hTtEln0wyN9HlyRm+QYRRLR0XTU jSO3LdSRwf64jiMqI3yLEpwf9edtBQ171oiXwMSpSwl5T4q0qqYBPK96LlHiJn97nD42 QBkA== X-Gm-Message-State: ALoCoQkLJ+0jzgqmtOXBVHrexHGSptfLilUkaiJwebzYnHx50ldHdm4fPCuDGjwwJ3kQizubkWha MIME-Version: 1.0 X-Received: by 10.50.129.39 with SMTP id nt7mr21398323igb.13.1386699187161; Tue, 10 Dec 2013 10:13:07 -0800 (PST) Received: by 10.50.57.230 with HTTP; Tue, 10 Dec 2013 10:13:07 -0800 (PST) In-Reply-To: <1386697668.8944.57916449.7576FC53@webmail.messagingengine.com> References: <1386634847.38473.YahooMailNeo@web121606.mail.ne1.yahoo.com> <1386697668.8944.57916449.7576FC53@webmail.messagingengine.com> Date: Tue, 10 Dec 2013 12:13:07 -0600 Message-ID: Subject: Re: Intel Controllers [Rant] From: Jim Thompson To: Mark Felder Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-net X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Dec 2013 18:13:13 -0000 On Tue, Dec 10, 2013 at 11:47 AM, Mark Felder wrote: > On Mon, Dec 9, 2013, at 18:20, Barney Cordoba wrote: >> Why is it that every time I get a new MB it has yet-another intel >> controller on it? How are you supposed to write good drivers that support >> 9000 different controllers? As much as I appreciate the progression of >> CPU technology, they >> would serve the community better by making up their damn minds and just >> build 1 or 2 controller for each >> target market. >> > > I'm pretty sure an entirely new driver doesn't need to be written for > each new controller. I assume like with most things (network cards, wifi > chips, etc) it's usually a matter of adding its identifier to the driver > code. It goes beyond that. In the simplest case, then yes, things are as you say. But chips have bugs, which require work-arounds, or other slightly strange stuff. Case(s) in-point: The 82575 assigns queues using vectors via a bitmask The Intel 82576 chip uses a table that essentially consists of 2 columns with 8 rows. The ordering is column-major (like Fortran arrays). On 82580 and newer adapters the scheme is similar to 82576, however instead of ordering column-major, the ordering is row-major (like C or Pascal). These chips are all supported via the igb driver. Some parts supported by the igb driver use MSI-X interrupts, others don't. On i350, i354, i210, and i211, loopback VLAN packets have the tag byte-swapped. The list of issues is by no means limited to the above. Jim