Messages in this thread | | | Date | Fri, 20 Jun 1997 17:25:11 +0200 (MET DST) | From | (Olaf Kirch) | Subject | Re: kernel > 2.1.36 & nfs |
| |
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
| |