[发明专利]一种应用于具有多CPU和网卡的系统的网卡驱动方法有效

专利信息
申请号: 201310309455.7 申请日: 2013-07-23
公开(公告)号: CN103440213A 公开(公告)日: 2013-12-11
发明(设计)人: 刘炳伟;王金桂 申请(专利权)人: 深圳市共进电子股份有限公司
主分类号: G06F13/10 分类号: G06F13/10
代理公司: 深圳市凯达知识产权事务所 44256 代理人: 王琦
地址: 518067 广东省深圳市南山区南海*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 应用于 具有 cpu 网卡 系统 驱动 方法
【说明书】:

技术领域

发明涉及通信技术领域,尤其涉及一种应用于具有多CPU和网卡的系统的网卡驱动方法。

背景技术

通常,linux系统的网卡驱动过程主要包括两部分。

如图1所示,网卡驱动过程的上半部包括:

101、在来自通信对端的以太网数据传输到本端的网卡后,系统产生硬件中断,同时关闭硬件中断,即此时不会再接收网络中断。

102、硬件中断产生后,系统CPU调用上述网卡在open时注册的中断处理函数,进行以下中断处理:首先从网卡的数据寄存器中读取所接收的以太网数据;然后创建一块缓存(skb_buf),将以太网数据写入到该缓存中;之后将该缓存以结构链表的方式挂入到上述网卡的接收队列中。

网卡的接收队列其实就是一个链表,是用来临时存放skb_buf对象实例的;所有网卡在将接收到的数据写入skb_buf之后都会将此skb_buf链入到其接收队列中,接收队列中的各skb_buf将在网络驱动过程的下半部分被取出发送至协议栈。

103、在网卡设备接收完数据之后,将该网卡挂到当前CPU的设备队列中,然后设置软中断,等待在软中断中继续处理数据。CPU的设备队列用以维护当前所有需要处理的网络设备。

104、重新开启硬件中断,此时系统可再次响应硬件中断。

如图2所示,网卡驱动过程的下半部包括:

201、系统在进行软中断轮询时,由于在上半部设置了软中断,因此发现CPU的软中断被置位。

202、依次对CPU的设备队列中各网卡设备所接收到的以太网数据进行处理:首先从CPU的设备队列中取得网卡设备,再从该网卡设备的接收队列中取得数据包,根据包头内容做相应的处理之后就将该数据包送往网络协议栈。

203、数据处理完毕后,从CPU的设备队列中移出数据处理完毕的网卡设备,同时关闭软中断。

但是上述网卡驱动流程在应用于具有多个CPU和网卡的系统中时,上半部分中的关闭硬件中断、CPU申请内存及读取寄存器中的数据、将数据写入内存中、将内存以skb_buf结构的形式挂入设备队列、将该设备挂入到CPU维护的设备队列中等等这一系列的操作将会耗费大量时间,使得系统对下一次硬件中断处理将不及时。如果硬件中断很频繁,而此时系统处于硬件关中断状态,即使系统中有其他CPU处于空闲状态,那中断请求也得不到及时处理。因而,有必要对此驱动方法进行改进。

发明内容

本发明的目的在于提供一种网卡驱动方法,应用于具有多CPU和网卡的系统,缩短系统处于硬件中断关闭状态的时间,提高对新的硬件中断的响应速度。

本发明的目的是通过以下技术方案实现的:

一种应用于具有多CPU和网卡的系统的网卡驱动方法,包括网卡驱动过程一和网卡驱动过程二,还包括步骤:在各个CPU的数据结构中分别创建数据接收设备队列和数据发送设备队列,初始化为空;

所述网卡驱动过程一具体包括:

①在通信对端的以太网数据到达网卡时,产生硬件中断,同时关闭硬件中断,调用中断处理进程;

②将所述网卡添加至一CPU的数据接收设备队列中;

③重新开启硬件中断,同时设置所述网卡当前所处数据接收设备队列所属的CPU软中断,所述中断处理进程返回;

所述网卡驱动过程二具体包括:

进行软中断轮询;对于软中断置位的CPU,

先扫描其数据接收设备队列,依次对该数据接收设备队列中的每个网卡进行处理:先从设备寄存器中读取相应的数据,将数据打包后挂入当前网卡的数据接收链表中;然后从数据接收设备队列中摘除当前网卡,并将当前网卡挂入一CPU的数据发送设备队列中;

再依次对其数据发送设备队列中的设备进行处理:将当前网卡的数据接收链表中的数据处理后发送至协议栈。

其中,所述步骤②,将所述网卡添加至一CPU的数据接收设备队列的过程进一步包括:

所述中断处理进程轮询各CPU,查看所述网卡存在于当前CPU的数据接收设备队列还是数据发送设备队列中,

若存在于当前CPU的数据接收设备队列,则跳转至步骤③;

若存在于当前CPU的数据发送设备队列中,则将该网卡移到一CPU的数据接收设备队列后跳转至步骤③;

若不存在于任一CPU的数据接收设备队列及数据发送设备队列中,则将该网卡添加至一CPU的数据接收设备队列中,之后跳转至步骤③。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市共进电子股份有限公司,未经深圳市共进电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310309455.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top