Skip site navigation (1)Skip section navigation (2)
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>