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

Chris Johns chrisj at rtems.org
Fri Apr 1 00:04:04 UTC 2011


On 1/04/11 8:59 AM, Kirspel, Kevin wrote:
> 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.

TCP should manage this for you. The 8K NFS read request should be sent 
broken up into the ethernet MTU (~1500 bytes) packets.

> 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 NFS server ?

I have been running this code on MCF5235 and PC BSPs connected to a 
Linux NFS server and saw no problems.

Chris



More information about the users mailing list