This problem is caused by communication between RX Checksum Offload Engine and Extended Descriptors. When packets are received after computing the checksum, the status is updated to the 4th RX extended descriptor in ethernet Linux driver.
When this problem occurs, this status updating becomes slow and gets stuck, reducing the network performance.
To workaround this problem, please use the below command to enable chain mode from uboot.
<board_uboot_cmd_prompt> stmmaceth=chain_mode:1
Also, disable the extended descriptors or RX checksum offload engine to avoid this problem. For this please download the attached net-stmmac-workaround-for-network-performance.zip which contains two patches and apply to Linux kernel using the below command.
cd linux-socfpga
patch -p1 < 0001-net-stmmac-workaround-for-network-performance-reduci.patch
patch -p1 < 0001-net-stmmac-do-not-use-extended-descriptors-for-GMAC.patch