Re: [NFS] What is the current zerocopy status?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>>>> " " == Ephi Dror <edror@silverbacksystems.com> writes:

     > Dear list members,

     > I am a bit confused about the state of the zerocopy support in
     > LINUX and will appreciate any info on that subject.

     > In particular: Does NFS client use zerocopy? if yes how? From
     > what version Does NFS Server use zerocopy? If yes, how? From
     > what version Does Sendfile system call use zerocopy? I have
     > seen that this is maybe the only place it is really in use.

No. Neither the NFS client nor the server uses the TCP zero copy
interface (a.k.a.sock->ops->sendpage).

For the former, I simply haven't had the time yet, although
I am planning some RPC changes for 2.5.x that will make zero copy
possible.
As for the latter: basic NFS over TCP server has just barely made it
into 2.5.x...

     > Does zerocopy for LINUX mean only support for the transmit side
     > for "scatter/gather + checksum" capable NIC cards?

We've had support for hardware checksumming on the UDP receive side
since before the zero copy patch. When the latter is available, it is
used by both the NFS client & server.
Scatter/gather is used when supported by the driver.

     > Can someone point me to documentation on what has been changed
     > in sockets in this regards?

Use the source, Luke...

     > What about the receive side, there are smart chips that can
     > split NFS headers from payloads for example, so payload
     > theoretically can go directly into file system buffers if they
     > pre assigned and the Ethernet driver knows when to use them?

     > I have seen interesting support on FreeBSD for those next
     > generation hardware and I am wondering what the LINUX position
     > on it is.

I'm not aware of the particular hardware you are referring to, but
unless these chips are *really* smart, I doubt the above is of much
interest for NFS. There is quite a bit of overhead involved in
interpreting the XDR code (see RFC1831 and RFC1832 for details). It is
not a simple case of stripping off a header and then jamming a load of
bytes into a buffer...

Cheers,
  Trond
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux