关于io_uring zero copy Rx

Linux 6.15 RC1中引入了io_uring zero copy Rx功能,而io_uring zerocopy tx则是在Linux 6.0中引入的,Linux6.1中进行了完善。
io_uring zero copy发送功能比较简单,而Rx功能的实现则比较复杂,还需要配合网卡的硬件支持。根据这篇文章,要使用Rx功能需要网卡支持ntuple filter和Header Split/Header Data Split,目前只有一些企业级网卡才支持。

Header Split是网卡厂商的叫法,在Linux内核中叫tcp data split(io_uring zero copy Rx只支持TCP协议吗?),可以通过ethtool -g命令查看网卡是否支持。

查看网卡是否支持ntuple:
ethtool -k enp2s0|grep ntuple

io_uring主要用于10G以上的网络中,因为在10G以上的网络中软件对软对数据的处理已经成为瓶颈,必须想办法进行优化,开发者展示了用单个CPU核心实现了200G的网络数据处理。

注意:
使用ethtool时要编译最新的版本,旧版本可能不支持相应的功能

参考:
https://kernelnewbies.org/Linux_6.0
https://lwn.net/Articles/879724/
https://docs.kernel.org/next/networking/iou-zcrx.html
https://www.phoronix.com/news/Linux-6.15-IO_uring
https://www.intel.com/content/www/us/en/developer/articles/training/setting-up-intel-ethernet-flow-director.html

Views: 0