Date: Sun, 02 Mar 2003 14:29:11 -0600 From: "Alan L. Cox" <alc@imimic.com> To: Peter Wemm <peter@wemm.org> Cc: arch@freebsd.org Subject: Re: Removal of ENABLE_VFS_IOOPT Message-ID: <3E626997.5005AE71@imimic.com> References: <20030302185332.4D54B2A89E@canning.wemm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E626997.5005AE71>