一种网络数据的中断处理方法及装置制造方法及图纸

技术编号:2916615 阅读:275 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种网络数据的中断处理方法及装置,所述方法包括:当接收到网络中断请求时,首先执行中断处理程序;再确定需要参与中断处理的CPU组,然后触发所述CPU组中各CPU开始进行网络数据的中断处理。根据本发明专利技术实施例,可以使多CPU操作系统中的闲置CPU也能处理中断响应,解决了多核平台下的系统资源的浪费问题,并且,多个CPU处理中断请求,可以大幅度的提高CPU处理网络数据的性能,减少了丢包现象的产生。

【技术实现步骤摘要】

本专利技术涉及计算机系统领域,尤其涉及一种网络数据的中断处理方法及装置
技术介绍
在操作系统中,例如,Linux系统,嵌入式系统等,在中央处理器CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停当前运行的程序,而转去执行相应的处理程序,以处理所述非预料事件,然后再返回被暂停的当前运行的程序,继续执行。这个过程就是计算机系统中的中断。中断可以分为:外设中断、陷阱和异常等,外设中断主要是指CPU外的设备中断,陷阱主要是专设指令(如INT)引发的中断,异常则是CPU在运行时产生了异常或错误;陷阱和异常通常称为软中断,即是指由内核机制的触发事件引起的(例如进程运行超时)中断,而外设中断则称之为硬中断,即是计算机硬件产生的中断。现有技术中,以Linux系统为例,有一种网络数据的中断处理方法,该方法的实现过程为:网卡收到一系列数据报文后,产生网络数据接收中断,在网卡中断服务程序中,操作系统首先进行有关硬件中断处理的上半部操作,然后随机选择一个CPU,把该CPU的工作线程和后半部软中断进行绑定,然后触发网络操作软中断,该CPU进入软中断上下文,进行相关协议栈处理,对数据报文完成接收和发送工作。从上述过程可以看出,在操作系统存在多个CPU的情况下,由于系统是随机选择一个CPU进行工作,所以在网卡接收到数据报文时,一般只有一个CPU进行相应处理,而且通常是第一个CPU处理,就导致了第一个CPU较忙,其它CPU都比较闲的状态,通过上述分析可以看出,由于网络软中断处理只有一个CPU进行响应,因此对于多CPU的操作系统,其他各CPU都处于闲置状态,这不但造成了系统资源的极大浪费,而且使处理网络数据的性能降低,进一步的,当网络数据流量较大的时候,一个CPU的处-->理能力有限,如果取包不及时,可能会造成丢包现象。
技术实现思路
本专利技术实施例提供一种网络数据的中断处理方法及装置,以解决计算机中多CPU的情况下,增强网络数据的处理性能,进一步的,还可以解决当网络数据流量较大时,丢包现象的问题。为解决上述技术问题,本专利技术实施例提供了一种网络数据的中断处理方法,包括:当接收到网络中断请求时,执行中断处理程序;确定需要参与中断处理的CPU组;触发所述CPU组中各CPU开始进行网络数据的中断处理。本专利技术实施例还提供了一种网络数据的中断处理装置,包括:处理模块,用于当接收到网络中断请求时,执行中断处理程序;确定模块,用于确定需要参与中断处理的CPU组;触发模块,用于触发所述CPU组中各CPU开始进行网络数据的中断处理。与现有技术相比,本专利技术实施例具有以下优点:在本专利技术实施例中,当接收到网络中断请求时,首先执行中断处理程序;再确定需要参与中断处理的CPU组,然后触发所述CPU组中各CPU开始进行网络数据的中断处理。可以看出,在本专利技术实施例中,通过确定需要参与中断处理的CPU组,可以使多CPU操作系统中的占用率较低的CPU也能处理中断响应,从而解决了多核平台下的系统资源的浪费问题,并且,多个CPU处理中断请求,可以大幅度的提高CPU处理网络数据的性能,进一步减少了丢包现象的产生。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获-->得其他的附图。图1是本专利技术的网络数据的中断处理方法实施例一的流程图;图2是本专利技术的网络数据的中断处理方法实施例二的流程图;图3是本专利技术的网络数据的中断处理装置实施例一的结构框图;图4是本专利技术的网络数据的中断处理装置实施例二的结构框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。为使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术实施例作进一步详细的说明。参考图1,在本专利技术实施例一中,实现本专利技术实施例一所提供的方法可以包括以下步骤:步骤101:当接收到网络中断请求时,执行中断处理程序;其中,本实施例一中执行中断处理程序可以由第一CPU执行,所述第一CPU为接收到网络中断请求的CPU;其中,执行中断处理程序的过程即是第一CPU处理上半部中断响应的过程;步骤102:确定需要参与中断处理的CPU组;其中,本实施例一中确定需要参与中断处理的CPU组可以由第一CPU来执行;步骤103:触发所述CPU组中各CPU开始进行网络数据的中断处理;其中,本实施例一中所述触发所述CPU组中各CPU开始进行网络数据的中断处理可以由第一CPU来执行;在本专利技术实施例一中,以Linux操作系统为例,中断处理程序可以分为上半部(top half)和下半部(bottom half),上半部是一般的中断服务程序,由硬件中断触发,应当尽可能短小,处理尽可能快;而下半部是单独的一段处理程序,一般将其放入立即队列中以便快速执行。在本实-->施例中,所述第一CPU为接收到网络中断请求的CPU,当操作系统中的第一CPU接收到网卡发送的网络中断请求时,第一CPU开始执行中断处理程序,然后确定需要参与中断处理的CPU组,其中所述CPU组可以包括所述第一CPU,也可以不包括所述第一CPU,然后第一CPU再触发所述CPU组中各CPU开始进行网络数据的中断处理,使系统进入软中断环境,所述各CPU可以共同进行网络数据的中断处理;在本实施例中,通过确定需要参与中断处理的CPU组,并唤醒所述CPU组中各CPU的内核进程以共同处理网络数据引起的中断响应,从而可以使多CPU操作系统中的使用率较低的CPU也能处理中断响应,解决了系统资源的浪费问题,并且,多个CPU处理中断请求,可以大幅度的提高CPU处理网络数据的性能,进一步减少了丢包现象的产生。参考图2,在本专利技术实施例二中,实现本专利技术实施例二所提供的方法可以包括以下步骤:步骤201:当接收到网络数据报文时,网卡产生网络中断请求;当网卡收到一系列网络数据报文时,网卡产生网络中断请求;步骤202:当接收到网卡发送的网络中断请求时,第一CPU执行中断处理程序;其中,所述第一CPU是指多核CPU中接收到该网络中断请求的CPU;当所述第一CPU接收到所述网络中断请求时,响应该中断,进入中断服务程序处理函数中,开始处理上半部中断;其中,上半部中断的处理可以为刷新各种中断相关的寄存器状态,以保证中断处理的及时性;步骤203:查询多核CPU中各CPU的使用参数;所述第一CPU查询多核CPU中各个CPU的使用参数,以获得每一个CPU的当前使用情况,其中,所述使用参数可以为占用率;步骤204:根据所述使用参数,按照预置规则选择需要参与中断处理的CPU组;根据步骤203中查询到的使用参数,在实际中可以为占用率,按照预置的规则选择需要参与中断处理的CPU,其中所述预置规则可以是,当某一CPU的占用率低于预置的门限值时,例如,所述占用率低于40%,-->将该CPU确定为本文档来自技高网
...

【技术保护点】
一种网络数据的中断处理方法,其特征在于,包括: 当接收到网络中断请求时,执行中断处理程序; 确定需要参与中断处理的CPU组; 触发所述CPU组中各CPU开始进行网络数据的中断处理。

【技术特征摘要】
1、一种网络数据的中断处理方法,其特征在于,包括:当接收到网络中断请求时,执行中断处理程序;确定需要参与中断处理的CPU组;触发所述CPU组中各CPU开始进行网络数据的中断处理。2、根据权利要求1所述的方法,其特征在于,所述确定需要参与中断处理的CPU组,具体包括:查询多核CPU中各CPU的使用参数;根据所述使用参数,按照预置规则选择需要参与中断处理的至少两个CPU。3、根据权利要求1所述的方法,其特征在于,所述触发所述CPU组中各CPU开始进行网络数据的中断处理之后,还包括:响应后续的中断处理请求。4、根据权利要求1所述的方法,其特征在于,所述触发所述CPU组中各CPU开始进行网络数据的中断处理,具体包括:唤醒所述CPU组中各CPU的内核进程;各CPU共同进行网络数据的中断处理。5、根据权利要求4所述的方法,其特征在于,所述各CPU共同进行网络数据的中断处理,具体包括:获取网卡接收到的数据包;查询所述数据包的目的地址;根据数据包的目的地址发送数据包。6、根据权利要求5所述的方法,其特征在于,所述根据数据包的目的地址发送数据包之后,还包括:查询数据包是否全部发送,如果是,则将所述CPU的内核进程转为休眠状态;如果否,则执行所述各CPU共同进行网络数据的中断处理的步骤。7、一种网络数据的中断处理装置,其特征在于,包...

【专利技术属性】
技术研发人员:张静
申请(专利权)人:成都市华为赛门铁克科技有限公司
类型:发明
国别省市:90[中国|成都]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1