Date: Sun, 02 Mar 2003 12:52:50 -0800 From: Peter Wemm <peter@wemm.org> To: "Alan L. Cox" <alc@imimic.com> Cc: arch@freebsd.org Subject: Re: Removal of ENABLE_VFS_IOOPT Message-ID: <20030302205250.E53D22A89E@canning.wemm.org> In-Reply-To: <3E626997.5005AE71@imimic.com>
next in thread | previous in thread | raw e-mail | index | archive | help
"Alan L. Cox" wrote: > 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. Perhaps my confusion comes from earlier versions of the zero copy work when it was necessary to turn on ENABLE_VFS_IOOPT. Personally, I dont think the complexity is worth it. I don't mind removing it, as long as it is for the right reasons. I thought it had been fixed, but since it hasn't I'll shut up. I think we'd get more mileage from optimizing the data copying routines. There are a whole host of new instructions that came with SSE that we are not taking advantage of yet. We can probably get a factor of 5 improvement in general purpose data copying speeds with this stuff on modern cpus. Cheers, -Peter -- Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com "All of this is for nothing if we don't go to the stars" - JMS/B5 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?20030302205250.E53D22A89E>