Shell copy_file() issue with NFS and small MAC receive buffer

Kirspel, Kevin kevin.kirspel at optimedical.com
Thu Mar 31 21:59:23 UTC 2011


I am upgrading from 4.9 to 4.10 and I have come across an issue between the RTEMS shell and NFS networking.

In 4.10, I cannot copy files from an NFS share to the RTEMS file system (which works fine in 4.9).  I traced it back to the copy_file() function in the RTEMS shell (utils-cp.c).  In the 4.9 version, the buffer size was set to 4096.  In 4.10, the buffer size is set to 8192.  This causes a problem with my NFS because my Ethernet MAC/PHY only has a 8192 receive buffer.  I have to set the NFS nfsStBlksize to 4096 to prevent buffer overflows.  The copy_file() function is requesting 8192 bytes from the nfs_file_read() function which has only a4096 block size.  In this case, the NFS server does not respond to the request.  I get the following error:

RPCIO: server '192.168.21.204' not responding - still trying
NFS (proc 6) - RPC: Timed out

What is the appropriate way to fix this scenario?  Should I have a while loop in the nfs_file_read() function to process multiple NFS requests until I get all the bytes needed?

Kevin Kirspel
Senior Electrical Engineer
Opti Medical
235 Hembree Park Drive
Roswell GA 30076
Tel: (770)-510-4444 ext. 81642
Direct: (770)-688-1642
Fax: (770)-510-4445

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20110331/3adf48a4/attachment.html>


More information about the users mailing list