From owner-freebsd-arch Sun Mar 2 12:29:34 2003 Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5B35C37B401 for ; Sun, 2 Mar 2003 12:29:33 -0800 (PST) Received: from mail26a.sbc-webhosting.com (mail26a.sbc-webhosting.com [216.173.237.36]) by mx1.FreeBSD.org (Postfix) with SMTP id 6485F43FB1 for ; Sun, 2 Mar 2003 12:29:32 -0800 (PST) (envelope-from alc@imimic.com) Received: from www.imimic.com (64.143.12.21) by mail26a.sbc-webhosting.com (RS ver 1.0.63s) with SMTP id 079238; Sun, 2 Mar 2003 15:29:05 -0500 (EST) Message-ID: <3E626997.5005AE71@imimic.com> Date: Sun, 02 Mar 2003 14:29:11 -0600 From: "Alan L. Cox" Organization: iMimic Networking, Inc. X-Mailer: Mozilla 4.8 [en] (X11; U; Linux 2.4.2 i386) X-Accept-Language: en MIME-Version: 1.0 To: Peter Wemm Cc: arch@freebsd.org Subject: Re: Removal of ENABLE_VFS_IOOPT References: <20030302185332.4D54B2A89E@canning.wemm.org> Content-Type: text/plain; charset=x-user-defined Content-Transfer-Encoding: 7bit X-Loop-Detect: 1 Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Peter Wemm wrote: > > "Alan L. Cox" wrote: > > Before I begin work on vm_object locking, I'd like to remove > > ENABLE_VFS_IOOPT from the kernel sources. ENABLE_VFS_IOOPT was a > > work-in-progress by John Dyson to perform zero-copy file system I/O. > > Unfortunately, it still has some unresolved issues, and no one has taken > > an active interest in fixing them. > > Hold on a second.. I thought the zero-copy folks fixed this up and it > is required for turning on zero-copy mode etc. > > I remember they added code to fix the read() coherency problems. > No, they didn't. The zero-copy sockets code introduced a new page-based copy-on-write mechanism and a new parameter to uiomoveco() ("disposable") that guaranteed that the new mechanism wouldn't be used for ENABLE_VFS_IOOPT. In contrast, ENABLE_VFS_IOOPT tried to use the preexisting object-based copy-on-write mechanism. Except for a few lines of code in kern_subr.c's userspaceco(), the two mechanisms are distinct. Specifically, the page flipping logic is totally distinct: vm_pgmoveco() for zero-copy sockets and vm_uiomove() for ENABLE_VFS_IOOPT. Someday, someone could attempt to reimplement ENABLE_VFS_IOOPT using the page-based mechanism, in which case, the four snippets of code in ffs_vnops.c could be useful. Aside from that, the code which lives in vm_map.* and vm_object.* is dead weight. Alan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message