一 AM5728千兆网性能问题
1.1 经过iperf深入测试,发现AM5728千兆网性能严重不够,TCP峰峰值为400Mb/s。
1.2 上TI官网,发现如下线索:
http://software-dl.ti.com/processor-sdk-linux/esd/docs/04_03_00_05/linux/Foundational_Components.html#cpsw
默认情况下,CPSW驱动只分配256个CPPI缓冲区描述符,这256个描述符正好嵌入到CPSW内部SRAM中。但是对于高吞吐量的程序来说是不够的,因此需要分配更多的描述符。
CPPI缓冲区描述符不仅可以保存到CPSW内部SRAM中,还可以保存到DDR3中。descs_pool_size参数可以用来设置CPPI缓冲区描述符的总数。
具体修改如下所示:
linux-4.9.69+gitAUTOINC+9ce43c71ae-g9ce43c71ae/drivers/net/ethernet/ti/cpsw.c
1.3 修改内核后,TCP峰峰值可以到达700Mb/s。