Linux多核环境网卡驱动优化研究①.PDF
2014 年 第 23 卷 第 10 期 计 算 机 系 统 应 用
Linux 多核环境网卡驱动优化研究①
姚萌萌, 张 俊, 沈 亮
(无锡江南计算技术研究所, 无锡 214083)
摘 要: Linux 多核环境下网卡驱动是影响网络性能的重要因素. 网卡接收数据包首先通过硬件中断响应, 然后
NAPI 机制调度, 启用软件中断把数据包向网络层传递. 通过分析网卡接收数据的过程, 对网卡驱动做了优化, 做
了相应实验并对结果数据进行分析, 在一定程度上提高了网络性能, 达到预期效果.
关键词: 多核环境; 网卡驱动; 中断; NAPI
Network Driver Adapter Optimization in Linux Multi-Core Environment
YAO Meng-Meng, ZHANG Jun, SHEN Liang
(Wuxi Jiangnan Inst. of Computing Techology, Wuxi 214083, China)
Abstract: In Linux multi-core environment, network driver adapter is an important factor that affects network
performance. When receiving a data package, network driver adapter responses with hardware interrupt firstly. Then it
schedules with NAPI mechanism and uses software interrupt to forward the data package upward to the network layer.
By analyzing to know the data receiving process of network driver adapter, this paper tries to optimize the network
driver adapter. Furthermore, it designs appropriate experiments, and the experiment result approves the network
performance is improved to a certain extent.
Key words: multi-core environment; network driver adapter; interrupt; New API
0 引言 理函数. 网卡接收数据触发硬中断, 网络数据的处理
目前, 多核处理器在网络设备上应用的越来越广 通过中断函数来实现. 在一个 cpu 或单核的环境下,
泛, Linux 作为通用的操作系统被广泛采用, Linux 自带 cpu 不能执行其它进程, 完全属于该中断处理函数, 而
的SMP 技术已经可以对多核处理器有良好的支持, 系 且不能被抢占[1]. 内核做非可抢占设计以及等待被cpu
统性能也得到了很大提升. 但是, 传统的网卡驱动在 服务的进程, 就会对网络性能有潜在的严重影响. 以
多核处理器的应用环境下不能发挥多核的性能. 多核 前的网卡驱动中, 每来一帧数据触发一次硬中断, 在
环境下, 核的数量增加并没有带来预期的网络吞吐的 低负载下可以保证低延时. 但是在高流量负载网络环
线性提升. 本文从如何提升多核环境下网络吞吐性能 境中, 网络性能比较低. 现在的很多网卡驱动程序,
目的出发, 研究分析网卡驱动实现