Re: kernel > 2.1.36 & nfs

Olaf Kirch (okir@monad.swb.de)
Fri, 20 Jun 1997 17:25:11 +0200 (MET DST)


Alan Cox wrote:

: The header can be in multiple parts. Also stuff like the NFS rpc code would
: need a rewrite to cope with fragmented rpc headers

As far as NFS is concerned, the only area where avoiding fragment
disassembly makes sense is in READ replies. The NFS code already
plays some tricks with buffer alignment. Because it knows how big the
RPC reply header is, it can set up the receive iovec so that the data
portion goes directly into the page cache. All that's needed thus is the
ability to do a copy+checksum from the fragment list to the iovec.

While it would also be nice to be able to handle fragment lists on NFS
WRITE in the server, this requires that we have access to the packet
checksum as computed by the card. It also requires that file_operations
provides readv()/writev() because I can't mess with the page cache
directly on the server.

I think we can avoid those pathological cases (IP IP IP..) cited by Alan
if we pass on the fragments only for packets where we know it's
some well-behaved protocol (UDP, TCP), and the header is completely
contained in the first fragment.

Olaf

--
Olaf Kirch         |  --- o --- Nous sommes du soleil we love when we play
okir@monad.swb.de  |    / | \   sol.dhoop.naytheet.ah kin.ir.samse.qurax