NAPI 技术在 Linux 网络驱动上的应用和完善 NAPI 技术是 Linux 上的一种提高网络处理效率的技术,其核心概念是使用 POLL 的方法来轮询数据,而不是使用中断的方式读取数据。该技术已经在网卡驱动层和网络层得到了广泛的应用,驱动层次上已经有 E1000 系列网卡、RTL8139 系列网卡、3c50X 系列等主流的网络适配器都采用了这个技术。 NAPI 技术的优点是可以大大改善短长度数据包接收的效率,减少中断触发的时间。但是 NAPI 也存在一些缺陷,如对上层的应用程序而言,系统不能在每个数据包接收到的时候都可以及时地去处理它,随着传输速度增加,累计的数据包将会消耗大量的内存。 使用 NAPI 需要满足两个条件:一是驱动可以继续使用老的 2.4 内核的网络驱动程序接口,NAPI 的参加并不会导致向前兼容性的丧失;二是至少要得到以下两个保证:使用 DMA 的环形输入队列,或者是有足够的内存空间缓存驱动获得的包。 NAPI 对数据包到达的事件的处理采用轮询方法,在数据包到达的时候,NAPI 就会强制执行 dev->poll 方法。为了减少包到达时间的处理延迟,NAPI 使用轮询方法来进行,而不是使用中断的方法。 在使用 NAPI 时,应当注意的是,经过测试如果 DEC Tulip 系列(DE21x4x 芯片)以及 National Semi 的局部网卡芯片,的测试说明如果把从前中断处理的局部都改换用设备的 POLL 方法去执行,那么会造成轻微的延迟。 NAPI 技术在 RTL8139CP 网卡驱动程序中的应用是把处理过程放在 dev 的 poll 方法中,把所有的原来中断应该处理的过程放在了 POLL 方法里面。 NAPI 技术可以大大改善短长度数据包接收的效率,减少中断触发的时间,但是在使用 NAPI 时需要注意一些缺陷和限制。 知识点: 1.NAPI 技术是 Linux 上的一种提高网络处理效率的技术。 2.NAPI 技术的核心概念是使用 POLL 的方法来轮询数据,而不是使用中断的方式读取数据。 3.NAPI 技术可以大大改善短长度数据包接收的效率,减少中断触发的时间。 4.NAPI 技术存在一些缺陷,如对上层的应用程序而言,系统不能在每个数据包接收到的时候都可以及时地去处理它,随着传输速度增加,累计的数据包将会消耗大量的内存。 5.使用 NAPI 需要满足两个条件:一是驱动可以继续使用老的 2.4 内核的网络驱动程序接口,NAPI 的参加并不会导致向前兼容性的丧失;二是至少要得到以下两个保证:使用 DMA 的环形输入队列,或者是有足够的内存空间缓存驱动获得的包。 6.NAPI 对数据包到达的事件的处理采用轮询方法,在数据包到达的时候,NAPI 就会强制执行 dev->poll 方法。 7.在使用 NAPI 时,应当注意的是,经过测试如果 DEC Tulip 系列(DE21x4x 芯片)以及 National Semi 的局部网卡芯片,的测试说明如果把从前中断处理的局部都改换用设备的 POLL 方法去执行,那么会造成轻微的延迟。 8.NAPI 技术在 RTL8139CP 网卡驱动程序中的应用是把处理过程放在 dev 的 poll 方法中,把所有的原来中断应该处理的过程放在了 POLL 方法里面。
剩余13页未读,继续阅读
- 粉丝: 2735
- 资源: 8万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助