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