一种中断处理方法、系统及可编程中断控制器与流程

文档序号:11949784阅读:408来源:国知局
一种中断处理方法、系统及可编程中断控制器与流程

本发明涉及数据处理领域,具体涉及一种中断处理方法、系统及可编程中断控制器。



背景技术:

目前,防火墙设备等网络数据转发设备使用平均分配的方式对来自网卡的中断进行分发处理,即将中断按顺序轮流分发给各个CPU进行处理。这种平均分配的方式虽然能够合理分流中断,防止出现个别CPU压力过大的问题,但是也有其弊端。

由于CPU在处理网卡的中断时需要执行该网卡对应NAPI实例的poll函数,如果利用上述平均分配的方式,则每个CPU都可能处理到任意一个网卡的中断,所以每个CPU都可能运行所有网卡的NAPI实例。

另外,CPU在处理不同网卡的中断时,需要轮流执行挂在该CPU上对应的网卡NAPI实例,而执行每一个NAPI实例的时候都有加解锁的操作。当每个CPU均需要处理所有网卡的中断时,这种频繁的加解锁操作无疑会大量消耗CPU的处理资源。



技术实现要素:

本发明提供了一种中断处理方法、系统及可编程中断控制器,一定程度上能够减少CPU处理资源的消耗。

本发明提供了一种中断处理方法,所述中断处理方法应用于可编程中断控制器,所述可编程中断控制器中预先设置有中断处理CPU与网卡的对应关系,所述方法包括:

接收来自任一网卡的中断处理请求,所述中断处理请求用于请求处理所述网卡接收到的任一数据包;

在所述中断处理CPU与网卡的对应关系中,查询所述网卡对应的中断处理CPU,并将所述中断处理请求转发至所述中断处理CPU,以便所述中断处理CPU对所述网卡接收到的所述数据包进行处理。

本发明还提供了一种可编程中断控制器,所述可编程中断控制器中预先设置有中断处理CPU与网卡的对应关系,所述可编程终端控制器包括:

接收模块,用于接收来自任一网卡的中断处理请求,所述中断处理请求用于请求处理所述网卡接收到的任一数据包;

查询模块,用于在所述中断处理CPU与网卡的对应关系中,查询所述网卡对应的中断处理CPU;

转发模块,用于将所述中断处理请求转发至所述中断处理CPU,以便所述中断处理CPU对所述网卡接收到的所述数据包进行处理。

本发明还提供了一种中断处理方法,所述方法包括:

可编程中断控制器接收来自任一网卡的中断处理请求,所述中断处理请求用于请求处理所述网卡接收到的任一数据包;在预先设置的中断处理CPU与网卡的对应关系中,查询所述网卡对应的中断处理CPU,并将所述中断处理请求转发至所述中断处理CPU;

所述中断处理CPU在接收到来自所述可编程中断控制器的中断处理请求时,从所述网卡获取所述数据包;并从业务处理CPU中,确定一业务处理CPU对所述数据包进行处理,将所述数据包发送至所述业务处理CPU;

所述业务处理CPU处理所述数据包。

优选地,所述中断处理CPU在接收到来自所述可编程中断控制器的中断处理请求时,从所述网卡获取所述数据包,包括:

所述中断处理CPU在接收到来自所述可编程中断控制器的中断处理请求时,调用所述网卡对应的NAPI实例,从所述网卡获取所述数据包。

优选地,所述方法还包括:

所述业务处理CPU运行所述数据包对应的上层应用程序。

优选地,所述中断处理方法应用于防火墙设备。

本发明还提供了一种中断处理系统,所述系统包括上述权利要求2中的可编程中断控制器、中断处理CPU和业务处理CPU;

所述中断处理CPU包括取包模块和计算模块;

所述取包模块,用于在接收到来自所述可编程中断控制器的中断处理请求时,从发送所述中断处理请求的网卡获取数据包;

所述计算模块,用于从所述业务处理CPU中,确定一业务处理CPU对所述数据包进行处理,并将所述数据包发送至所述业务处理CPU;

所述业务处理CPU,用于处理所述数据包。

优选地,所述取包模块,具体用于在接收到来自所述可编程中断控制器的中断处理请求时,调用发送所述中断处理请求的网卡对应的NAPI实例,从所述网卡获取所述数据包。

优选地,所述业务处理CPU,还用于运行所述数据包对应的上层应用程序。

优选地,所述中断处理系统应用于防火墙设备。

本发明提供了一种中断处理方法、系统及可编程中断控制器,所述中断处理方法应用于可编程中断控制器,所述可编程中断控制器中预先设置有中断处理CPU与网卡的对应关系,所述方法包括:接收来自任一网卡的中断处理请求,所述中断处理请求用于请求处理所述网卡接收到的任一数据包;在所述中断处理CPU与网卡的对应关系中,查询所述网卡对应的中断处理CPU,并将所述中断处理请求转发至所述中断处理CPU,以便所述中断处理CPU对所述网卡接收到的所述数据包进行处理。本发明中的中断处理CPU与网卡具有对应关系,每个中断处理CPU只用于处理与其具有对应关系的网卡的中断处理请求,在接收到来自网卡的中断处理请求时,中断处理CPU当前运行的NAPI实例很大几率可能正好是该网卡对应的NAPI实例,此时不需要进行NAPI实例切换,节省了中断处理CPU的处理资源。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种中断处理方法流程图;

图2为本发明实施例提供的另一种中断处理方法流程图;

图3为本发明实施例提供的一种可编程中断控制器的结构示意图;

图4为本发明实施例提供的一种中断处理系统结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下进行实施例具体内容的介绍。

本发明实施例提供了一种中断处理方法,参考图1,为本发明实施例提供的一种中断处理方法流程图,其中,所述中断处理方法应用于可编程中断控制器,所述可编程中断控制器中预先设置有中断处理CPU与网卡的对应关系,所述方法具体包括:

S101:接收来自任一网卡的中断处理请求,所述中断处理请求用于请求处理所述网卡接收到的任一数据包。

S102:在所述中断处理CPU与网卡的对应关系中,查询所述网卡对应的中断处理CPU,并将所述中断处理请求转发至所述中断处理CPU进行处理。

本发明实施例中,可编程中断控制器中预先设置有中断处理CPU与网卡的对应关系,其中,中断处理CPU仅用于处理来自与其具有对应关系的网卡的中断处理请求。

值得指出的是,各个中断处理CPU只需要配置有与其具有对应关系的网卡的NAPI实例即可,在处理来自网卡的中断处理请求时,中断处理CPU当前运行的NAPI实例很大几率可能正好是该网卡对应的NAPI实例,此时不需要进行NAPI实例切换,节省了中断处理CPU的处理资源。

实际应用中,可编程中断控制器接收到来自任一网卡的中断处理请求后,在预先设置的中断处理CPU与网卡的对应关系中,查询该网卡对应的中断处理CPU,并将该中断处理请求转发至该中断处理CPU处理。

实际应用中,由于可编程中断控制器接收到的中断处理请求可能来自网卡,也可能来自其他硬件设备。所以,本发明实施例的可编程中断控制器需要能够识别出来自网卡的中断处理请求,以便对其进行处理。

一种实现方式中,中断处理请求可以携带中断号,在硬件电路及bios固件不变的情况下,网卡及其他硬件设备对应的中断号是固定的。可编程中断控制器在接收到中断处理请求后,通过所述中断处理请求携带的中断号确定该中断处理请求是否来自网卡。

本发明实施例还提供了一种中断处理方法,参考图2,为本发明实施例提供的一种中断处理方法流程图。所述方法具体包括:

S201:可编程中断控制器接收来自任一网卡的中断处理请求,所述中断处理请求用于请求处理所述网卡接收到的任一数据包;在预先设置的中断处理CPU与网卡的对应关系中,查询所述网卡对应的中断处理CPU,并将所述中断处理请求转发至所述中断处理CPU。

S202:所述中断处理CPU在接收到来自所述可编程中断控制器的中断处理请求时,从所述网卡获取所述数据包;并从业务处理CPU中,确定一业务处理CPU对所述数据包进行处理,将所述数据包发送至所述业务处理CPU。

S203:所述业务处理CPU处理所述数据包。

本发明实施例提供的中断处理方法中,由于同时负担处理网卡的中断处理请求以及处理来自网卡的数据包,会使得CPU的负担过重,可能产生数据包的丢包问题。所以,本发明实施例预先将处理中断处理请求的CPU与处理业务数据包的CPU区分开。也就是说,本发明实施例中的中断处理CPU用于处理来自网卡的中断处理请求,而业务处理CPU则用于处理来自网卡的数据包。

实际应用中,当可编程中断控制器确定接收到的中断处理请求来自网卡后,查询所述网卡对应的中断处理CPU,并将其转发至所述中断处理CPU。所述中断处理CPU调用所述网卡对应的NAPI实例,运行所述NAPI实例的poll函数,从所述网卡获取数据包。

由于业务处理CPU负责处理来自网卡的数据包,所以,本发明实施例中的所述中断处理CPU还用于从所述业务处理CPU中选择一个作为所述数据包的目标业务处理CPU。其中,使用的选择算法可以为经过调整的RPS/RFS方法,具体的,将RPS/RFS方法中的可选择CPU范围修改为本发明实施例中的用于处理来自网卡的数据包的业务处理CPU。具体的,接收到数据包的中断处理CPU可以根据上述RPS/RFS方法,在用于处理来自网卡的数据包的业务处理CPU中确定一个业务处理CPU用于对所述数据包进行处理。所述中断处理CPU确定用于处理所述数据包的业务处理CPU后,将所述数据包转发至所述业务处理CPU。本发明实施例提供的中断处理方法能够应用于防火墙设备。

实际应用中,上层应用程序与其对应的数据包不在同一个CPU上进行处理,会导致数据包处理的过程中不同CPU之间的频繁切换。为了避免上述问题,本发明实施例中,用于处理数据包的业务处理CPU上运行所述数据包对应的上层应用程序。

本发明实施例还提供了一种可编程中断控制器,参考图3,为本发明实施例提供的一种可编程中断控制器的结构示意图。其中,所述可编程中断控制器100与网卡200和中断处理CPU300相连,所述可编程中断控制器100中预先设置有中断处理CPU与网卡的对应关系,所述可编程终端控制器100包括:

接收模块110,用于接收来自任一网卡的中断处理请求,所述中断处理请求用于请求处理所述网卡接收到的任一数据包。

查询模块120,用于在所述中断处理CPU与网卡的对应关系中,查询所述网卡对应的中断处理CPU。

转发模块130,用于将所述中断处理请求转发至所述中断处理CPU,以便所述中断处理CPU对所述网卡接收到的所述数据包进行处理。

本发明实施例中的可编程中断控制器预先存储有中断处理CPU与网卡的对应关系,中断处理CPU仅用于处理与其对应的网卡发送的中断处理请求。本发明实施例提供的可编程中断控制器能够减少中断处理CPU在处理网卡中断时对处理资源的浪费。

另外,本发明实施例还提供了一种中断处理系统,参考图4,为本发明实施例提供的一种中断处理系统结构示意图,所述中断处理系统包括上述可编程中断控制器100、中断处理CPU300和业务处理CPU400;

所述中断处理CPU300包括取包模块和计算模块;

所述取包模块,用于在接收到来自所述可编程中断控制器100的中断处理请求时,从发送所述中断处理请求的网卡获取数据包;

所述计算模块,用于从所述业务处理CPU中,确定一业务处理CPU对所述数据包进行处理,并将所述数据包发送至所述业务处理CPU;

所述业务处理CPU400,用于处理所述数据包。

如图4所示,网卡4在接收到数据包后会产生中断处理请求,并将所述中断处理请求发送至可编程中断控制器100,所述可编程中断控制器100在接收到所述中断处理请求后,查询发送所述中断处理请求的网卡对应的中断处理CPU2,并由所述中断处理CPU2从网卡4获取所述数据包。所述中断处理CPU2获取所述数据包后,计算用于处理所述数据包的业务处理CPU,确定业务处理CPU2,并将所述数据包发送至所述业务处理CPU2,由其负责处理所述数据包。

本发明实施例提供的中断处理系统中,用于处理网卡中断的CPU与用于处理业务数据包的CPU分开,避免了使用同一CPU进行中断处理和业务处理时出现的数据包丢包的问题。

实际应用中,本发明实施例的所述取包模块,具体用于在接收到来自所述可编程中断控制器的中断处理请求时,调用发送所述中断处理请求的网卡对应的NAPI实例,从所述网卡获取所述数据包。

所述业务处理CPU400,还用于运行所述数据包对应的上层应用程序。

本发明实施例中的所述中断处理系统能够应用于防火墙设备。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明实施例所提供的一种中断处理方法、系统及可编程中断控制器进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1