From owner-freebsd-net@FreeBSD.ORG Wed Aug 30 17:23:39 2006 Return-Path: X-Original-To: freebsd-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 874E916A4E8; Wed, 30 Aug 2006 17:23:39 +0000 (UTC) (envelope-from gallatin@cs.duke.edu) Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6B8EA43D49; Wed, 30 Aug 2006 17:23:38 +0000 (GMT) (envelope-from gallatin@cs.duke.edu) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.13.6/8.13.6) with ESMTP id k7UHNWRY026651 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO); Wed, 30 Aug 2006 13:23:32 -0400 (EDT) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.12.9p2/8.12.9/Submit) id k7UHNQu5063184; Wed, 30 Aug 2006 13:23:26 -0400 (EDT) (envelope-from gallatin) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <17653.51598.910897.127606@grasshopper.cs.duke.edu> Date: Wed, 30 Aug 2006 13:23:26 -0400 (EDT) To: "Jack Vogel" In-Reply-To: <2a41acea0608291624u4ee91cdej2d87aa19e2e5ba62@mail.gmail.com> References: <2a41acea0608291624u4ee91cdej2d87aa19e2e5ba62@mail.gmail.com> X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid Cc: freebsd-net , Alan Cox , freebsd-current , Mohan Srinivasan , Robert Watson Subject: Re: RFC: FreeBSD I/OAT driver 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: Wed, 30 Aug 2006 17:23:39 -0000 Jack Vogel writes: > We are making our development driver for the I/OAT engine available for > download, experimentation, and comment available at: > > http://sourceforge.net/project/showfiles.php?group_id=42302&package_id=202220 > > This includes a core driver for the dma hardware and a set of stack changes > to allow use of the engine on the receive side of the stack. > > There are certainly rough edges and limitations in this code, but we have run > it internally and seen some great results. > > I would like to see this get into CURRENT, so anything Prafulla and I can do > to help or answer questions, send us email. Excellent! Can you share some of these results? I would love to try it, but I don't have FreeBSD on any machine with I/OAT hardware. I've taken a very quick look at it. Maybe I'm just being dense, but I don't like the name "dma_" being in the global namespace. Maybe things (like dma_*_list should be called at least dmaengine_*_list, etc. There are some style(9) defects which I'm sure others who are more proficient at style(9) than I am will point out (// comments, function names not starting in column 0, etc). How deep would you expect so->dma_wait_queue to get? Would it make sense to keep a pointer to the last item so that insertion is O(1), rather than O(N)? Would it be possible to have a sysctl tunable threshold, below which the system does a normal uiomove? A normal copyout() will certainly be faster at some point.. Thanks for the great work! Drew