From owner-freebsd-net@FreeBSD.ORG Mon Jul 31 17:34:55 2006 Return-Path: X-Original-To: net@freebsd.org Delivered-To: freebsd-net@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5914116A4DD; Mon, 31 Jul 2006 17:34:55 +0000 (UTC) (envelope-from jdp@polstra.com) Received: from blake.polstra.com (blake.polstra.com [64.81.189.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 70D6643D46; Mon, 31 Jul 2006 17:34:54 +0000 (GMT) (envelope-from jdp@polstra.com) Received: from strings.polstra.com (strings.polstra.com [64.81.189.67]) by blake.polstra.com (8.13.6/8.13.6) with ESMTP id k6VHYrdi039191; Mon, 31 Jul 2006 10:34:53 -0700 (PDT) (envelope-from jdp@polstra.com) Message-ID: X-Mailer: XFMail 1.5.5 on FreeBSD X-Priority: 3 (Normal) Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit MIME-Version: 1.0 In-Reply-To: <44CE3C2E.80007@he.iki.fi> Date: Mon, 31 Jul 2006 10:34:53 -0700 (PDT) From: John Polstra To: Petri Helenius Cc: arch@freebsd.org, net@freebsd.org Subject: Re: Changes in the network interface queueing handoff model X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 Jul 2006 17:34:55 -0000 On 31-Jul-2006 Petri Helenius wrote: > Robert Watson wrote: >> >> I tend to agree, but implemented full queueing support for if_em to >> make sure I understood to complexity implications of completely >> removing queueing from the ifnet side dispatch. I guess an >> interesting question for us is how we decide what the right threshold >> is to implement software queuing. Do any if_em cards need software >> queueing, or do they all have adequate in-hardware queues as is? >> Entirely cutting the queue code would significantly simplify >> em_startmbuf. > Actually most em cards support 4096 descriptors each way. Yes, even the earliest ones supported 4096 descriptors on paper. In practice, the early chips had bugs that required the entire descriptor ring to fit in a single page of memory. That limited them to 4096/16 = 256 transmit descriptors on x86 hardware at the time. That chip bug was fixed a long time ago, though, and in any case 256 transmit descriptors is a lot for most applications. John