From owner-freebsd-net Wed Jun 19 19:52:53 2002 Delivered-To: freebsd-net@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id 71AE837B410; Wed, 19 Jun 2002 19:52:46 -0700 (PDT) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.3/8.9.3) with ESMTP id WAA18593; Wed, 19 Jun 2002 22:52:36 -0400 (EDT) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.11.6/8.9.1) id g5K2q6p29304; Wed, 19 Jun 2002 22:52:06 -0400 (EDT) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15633.17238.109126.952673@grasshopper.cs.duke.edu> Date: Wed, 19 Jun 2002 22:52:06 -0400 (EDT) To: Bosko Milekic Cc: "Kenneth D. Merry" , current@FreeBSD.ORG, net@FreeBSD.ORG Subject: Re: new zero copy sockets snapshot In-Reply-To: <20020619120641.A18434@unixdaemons.com> References: <20020618223635.A98350@panzer.kdm.org> <20020619090046.A2063@panzer.kdm.org> <20020619120641.A18434@unixdaemons.com> X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Bosko Milekic writes: > > - It's kind of unfortunate that uipc_jumbo.c has to roll its own > allocator; There are a couple of alternatives; to just use The point of uipc_jumbo.c rolling its own allocator is that it allocates free pages which can be "flipped" (re-mapped) into user-space to avoid a memory copy. The use of this allocator is confined to nic's with firmware which is smart enough to split off headers from payloads. (Currently only Ken's modified if_ti.c; and my old Trapeze/Myrinet driver though I plan to implment this in the official Myricom GM firmware/FreeBSD driver if the zero-copy sockets patch is committed). Its somewhat out of date, but you might want to read my '99 Freenix paper. It gives a good overview of the zero-copy patch. http://www.cs.duke.edu/ari/publications/tcpgig.pdf This is orthogonal to the zero-copy patch, but it _would_ be nice to have general purpose mbuf allocator which could allocate mbuf clusters with 9K physically contigous for dumber nics. There are a whole slew of drivers (unpatched ti, bge, nge, lge, etc) which roll their own for no better reason than the system doesn't offer this feature. That's what needs fixing. Heck, if such an allocator was available, we could use it for copyin's of large chunks of data. Tru64 has 8K and 2K clusters and does this. (based from emperical evidence garnered at the driver level). Drew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message