From owner-cvs-all@FreeBSD.ORG Thu Nov 4 07:02:26 2004 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E7D5816A4CE for ; Thu, 4 Nov 2004 07:02:26 +0000 (GMT) Received: from relay03.pair.com (relay03.pair.com [209.68.5.17]) by mx1.FreeBSD.org (Postfix) with SMTP id 23BDB43D49 for ; Thu, 4 Nov 2004 07:02:26 +0000 (GMT) (envelope-from silby@silby.com) Received: (qmail 61423 invoked from network); 4 Nov 2004 07:02:24 -0000 Received: from niwun.pair.com (HELO localhost) (209.68.2.70) by relay03.pair.com with SMTP; 4 Nov 2004 07:02:24 -0000 X-pair-Authenticated: 209.68.2.70 Date: Thu, 4 Nov 2004 01:02:23 -0600 (CST) From: Mike Silbersack To: Gleb Smirnoff In-Reply-To: <200410311739.i9VHdkTf054648@repoman.freebsd.org> Message-ID: <20041104005726.G16834@odysseus.silby.com> References: <200410311739.i9VHdkTf054648@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed cc: cvs-src@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/net if_tap.c if_tun.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Nov 2004 07:02:27 -0000 On Sun, 31 Oct 2004, Gleb Smirnoff wrote: > glebius 2004-10-31 17:39:46 UTC > > FreeBSD src repository > > Modified files: > sys/net if_tap.c if_tun.c > Log: > Utilize m_uiotombuf() in device write method, instead of home-grown > implementation. This also gives a performance improvement, because > m_uiotombuf() utilizes clusters. > > Approved by: julian (mentor) > MFC after: 1 month This is only somewhat related to your commit, but since I'm thinking of it, I'll throw it out there... One of the main disappointments I had when I wrote m_uiotombuf is that I didn't have time to use it where it really should be used - in uipc_socket.c:sosend. The reason it's not there is because of the zero-copy send code, which I didn't have time to untangle. If someone had the time, it would be great to take the zero copy code, integrate it *into* m_uiotombuf, then replace the huge mess in sosend with a simple call to m_uiotombuf. This would make sosend much easier to read, and provide the benefits of zero-copy writes for many more places throughout the kernel. Whether or not zero copy send is a performance win is only a tiny side issue; if it's not actually a performance win on a particular system, then hey, at least there would be one clear place to #ifdef it out. :) Mike "Silby" Silbersack