AnsweredAssumed Answered

"cp" files from NFS server ( mounted by UDP) alway failed on Imx6 sabre Lite.

Question asked by Howard ma on Apr 11, 2019
Latest reply on Apr 22, 2019 by Howard ma

I build the image from the (https://boundarydevices.com/pyro-yocto-release/) and run it on my Imx6 sabre Lite.

 

When I mount the NFS server by tcp, (mount -t nfs -o nolock,nfsvers=3 192.168.0.2:/home/aaa/nfs mynfs)

root@nitrogen6x:~# cp /mnt/file1M.bin ./     --- could completed.

 

But when I mount the NFS server by udp, (mount -t nfs -o proto=udp,nolock,nfsvers=3 192.168.0.2:/home/aaa/nfs mynfs)

root@nitrogen6x:~# cp /mnt/file1M.bin ./     ---- hung.

nfs: server 192.168.0.2 not responding, still trying

nfs: server 192.168.0.2 not responding, still trying

 

 

When I run tcpdump to catch the packet, I see there are re-transmit packets both TCP and UDP.

Some packets are lost.

Because of the fast retransmit in TCP, the cp operation could finish quickly.

However, for UDP, if the packet(one of segment) is lost, it will hang for a long time.

 

I don’t think the problem is related to the ERR004512 ENET: 1 Gb Ethernet MAC (ENET) system limitation.

The ERR004512 says “1 Gbps ENET is limited to 470 Mbps” but my file is only 1M bytes.

My analysis is the receive FIFO is always almost_full quickly, it sends the PAUSE frame and causes the packets lost.

I tried to changes the FIFO wartmark, but it seems not work.

 

Do you have any comment or suggestion?

 

Thanks

 

 

 

Outcomes