一种HBA卡热插/拔事件的检测装置及方法制造方法及图纸

技术编号:18940406 阅读:28 留言:0更新日期:2018-09-15 11:02
本申请公开了一种HBA卡热插/拔事件的检测装置,包括PCI‑e内核驱动和用户态热插/拔解析模块;PCI‑e内核驱动用于在检测到HBA卡热插/拔后,生成HBA卡热插/拔事件消息;用户态热插/拔解析模块用于根据HBA卡热插/拔事件消息识别HBA卡信息和热插/拔事件;根据预设的合并规则对同一HBA卡的连续热插/拔事件进行合并;根据合并结果向与HBA卡对应的内核态驱动和用户态驱动发送热插/拔处理指令,以便内核态驱动和用户态驱动执行对HBA卡的热插/拔处理。本申请可有效地提高系统对热插/拔事件的整体处理速率。本申请还公开了一种HBA卡热插/拔事件的检测方法,也具有上述有益效果。

Device and method for detecting hot insertion / pull events of HBA card

This application discloses a device for detecting hot-swap/pull events of HBA cards, including a PCI_e kernel driver and a user-mode hot-swap/pull parsing module; a PCI_e kernel driver for generating hot-swap/pull event messages of HBA cards after detecting hot-swap/pull events of HBA cards; and a user-mode hot-swap/pull parse module for identifying hot-swap/pull event messages of HBA cards. HBA card information and hot-swap/pull events; merge the continuous hot-swap/pull events of the same HBA card according to the preset merge rules; send hot-swap/pull processing instructions to the kernel driver and user driver corresponding to the HBA card according to the merge results, so that the kernel driver and user driver can execute the hot-swap/pull processing of the HBA card. This application can effectively improve the overall processing speed of the system for hot plug / pull events. The application also discloses a detection method for HBA card hot plug / pull event, and has the beneficial effect as well.

【技术实现步骤摘要】
一种HBA卡热插/拔事件的检测装置及方法
本申请涉及计算机
,特别涉及一种HBA卡热插/拔事件的检测装置及方法。
技术介绍
热插/拔(Hot-plug)即带电插/拔,可允许用户在不关闭系统、不切断电源的情况下取出和更换网卡、板卡等HBA(HostBusAdapter,主机总线适配器)卡,从而提高系统对灾难的及时恢复能力、扩展性和灵活性等。热插/拔功能的实现需要从硬件(包括HBA接口、寄存器等)和驱动程序两方面来进行支持热插/拔的相关基础设计。其中,在驱动程序方面,出于降低风险的目标考虑,目前的存储和服务器产品多使用内核态加用户态的设计方式,则每个HBA卡都存在内核态和用户态两个驱动,因此,当HBA卡从系统中热插/拔后,需要通过一定的检测装置将其热插/拔事件的发生信息在内核态和用户态间进行传递,以便内核态驱动和用户态驱动执行相应的热插/拔处理。现有技术中,一般是采用将每次的HBA卡热插/拔事件发生信息以文件形式在内核态和用户态间进行调用的方式。由于该方法将每次的HBA卡热插/拔事件都生成文件信息,而没有对其进行进一步的处理,并且需要进行文件查找与调用,因此处理速率较低,有待进一步提高。由此可见,采用何种HBA卡热插/拔事件的检测装置,以便有效地提高处理速度,是本领域技术人员所亟待解决的技术问题。
技术实现思路
本申请的目的在于提供一种HBA卡热插/拔事件的检测装置及方法,以便有效地提高处理速度。为解决上述技术问题,本申请提供一种HBA卡热插/拔事件的检测装置,包括:PCI-e内核驱动:用于在检测到HBA卡热插/拔后,生成HBA卡热插/拔事件消息并发送至用户态热插/拔解析模块;所述用户态热插/拔解析模块:用于根据所述HBA卡热插/拔事件消息识别所述HBA卡信息和所述热插/拔事件;根据预设的合并规则对同一所述HBA卡的连续的热插/拔事件进行合并;根据合并结果分别向与所述HBA卡对应的内核态驱动和用户态驱动发送热插/拔处理指令,以便所述内核态驱动和所述用户态驱动根据所述热插/拔处理指令执行对所述HBA卡的热插/拔处理。可选地,所述PCI-e内核驱动具体用于:在检测到HBA卡热插/拔后,生成所述HBA卡热插/拔事件消息并采用Uevent通信机制发送至所述用户态热插/拔解析模块。可选地,所述用户态热插/拔解析模块具体用于:根据所述合并结果,采用Netlink通信机制分别向与所述HBA卡对应的内核态驱动和用户态驱动发送所述热插/拔处理指令。可选地,所述用户态热插/拔解析模块具体用于:采用延时队列处理机制,针对于合并后不同的热插/拔事件,向与所述HBA卡对应的内核态驱动和用户态驱动发送所述热插/拔处理指令。可选地,所述合并规则包括:当所述HBA卡的热插/拔事件为连续的两次热插/拔事件时,若所述两次热插/拔事件的间隔时间小于预设时长,则清空所述HBA卡的所述两次热插/拔事件;所述预设时长小于所述延时队列处理机制的延时间隔时长;若所述两次热插/拔事件的间隔时间不小于预设时长,则保留所述HBA卡的所述两次热插/拔事件。可选地,所述延时队列处理机制的延时间隔时长为10秒;所述预设时长为5秒。本申请还提供了一种HBA卡热插/拔事件的检测方法,包括:PCI-e内核驱动在检测到HBA卡热插/拔后,生成HBA卡热插/拔事件消息并发送至用户态热插/拔解析模块;所述用户态热插/拔解析模块根据所述HBA卡热插/拔事件消息识别所述HBA卡信息和所述热插/拔事件;根据预设的合并规则对同一所述HBA卡的连续的热插/拔事件进行合并;根据合并结果分别向与所述HBA卡对应的内核态驱动和用户态驱动发送热插/拔处理指令,以便所述内核态驱动和所述用户态驱动根据所述热插/拔处理指令执行对所述HBA卡的热插/拔处理。可选地,所述PCI-e内核驱动在检测到HBA卡热插/拔后,生成HBA卡热插/拔事件消息并发送至用户态热插/拔解析模块包括:所述PCI-e内核驱动在检测到HBA卡热插/拔后,生成所述HBA卡热插/拔事件消息并采用Uevent通信机制发送至所述用户态热插/拔解析模块。可选地,所述根据合并结果分别向与所述HBA卡对应的内核态驱动和用户态驱动发送热插/拔处理指令包括:根据所述合并结果,采用Netlink通信机制分别向与所述HBA卡对应的内核态驱动和用户态驱动发送所述热插/拔处理指令。可选地,所述根据合并结果分别向与所述HBA卡对应的内核态驱动和用户态驱动发送热插/拔处理指令包括:采用延时队列处理机制,针对于合并后不同的热插/拔事件,向与所述HBA卡对应的内核态驱动和用户态驱动发送所述热插/拔处理指令。本申请所提供的HBA卡热插/拔事件的检测装置包括PCI-e内核驱动和用户态热插/拔解析模块;所述PCI-e内核驱动用于在检测到HBA卡热插/拔后,生成HBA卡热插/拔事件消息并发送至用户态热插/拔解析模块;所述用户态热插/拔解析模块:用于根据所述HBA卡热插/拔事件消息识别所述HBA卡信息和所述热插/拔事件;根据预设的合并规则对同一所述HBA卡的连续的热插/拔事件进行合并;根据合并结果分别向与所述HBA卡对应的内核态驱动和用户态驱动发送热插/拔处理指令,以便所述内核态驱动和所述用户态驱动根据所述热插/拔处理指令执行对所述HBA卡的热插/拔处理。可见,相比于现有技术,本申请所提供的HBA卡热插/拔事件的检测装置中,通过用户态热插/拔解析模块对PCI-e内核驱动检测到的HBA卡热插/拔事件进行合并处理,可以在用户反复热插/拔某一HBA卡的情况下,有效避免系统中的相关驱动也同样反复执行热插/拔处理,由此可有效地提高系统对热插/拔事件的整体反应速率,并避免资源的浪费。本申请所提供的HBA卡热插/拔事件的检测方法应用于上述HBA卡热插/拔事件的检测装置,同样具有上述有益效果。附图说明为了更清楚地说明现有技术和本申请实施例中的技术方案,下面将对现有技术和本申请实施例描述中需要使用的附图作简要的介绍。当然,下面有关本申请实施例的附图描述的仅仅是本申请中的一部分实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,所获得的其他附图也属于本申请的保护范围。图1为本申请实施例所提供的一种HBA卡热插/拔事件的检测装置的结构框图。图2为本申请实施例所提供的一种HBA卡热插/拔事件的检测方法的流程图。具体实施方式本申请的核心在于提供一种HBA卡热插/拔事件的检测装置及方法,以便有效地提高处理速度。为了对本申请实施例中的技术方案进行更加清楚、完整地描述,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行介绍。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。请参阅图1,图1为本申请所提供的一种HBA卡热插/拔事件的检测装置的结构框图;包括PCI-e内核驱动1和用户态热插/拔解析模块2;PCI-e内核驱动1用于在检测到HBA卡热插/拔后,生成HBA卡热插/拔事件消息并发送至用户态热插/拔解析模块2;用户态热插/拔解析模块2用于根据HBA卡热插/拔事件消息识别HBA卡信息和热插/拔事件;根本文档来自技高网...

【技术保护点】
1.一种HBA卡热插/拔事件的检测装置,其特征在于,包括:PCI‑e内核驱动:用于在检测到HBA卡热插/拔后,生成HBA卡热插/拔事件消息并发送至用户态热插/拔解析模块;所述用户态热插/拔解析模块:用于根据所述HBA卡热插/拔事件消息识别所述HBA卡信息和所述热插/拔事件;根据预设的合并规则对同一所述HBA卡的连续的热插/拔事件进行合并;根据合并结果分别向与所述HBA卡对应的内核态驱动和用户态驱动发送热插/拔处理指令,以便所述内核态驱动和所述用户态驱动根据所述热插/拔处理指令执行对所述HBA卡的热插/拔处理。

【技术特征摘要】
1.一种HBA卡热插/拔事件的检测装置,其特征在于,包括:PCI-e内核驱动:用于在检测到HBA卡热插/拔后,生成HBA卡热插/拔事件消息并发送至用户态热插/拔解析模块;所述用户态热插/拔解析模块:用于根据所述HBA卡热插/拔事件消息识别所述HBA卡信息和所述热插/拔事件;根据预设的合并规则对同一所述HBA卡的连续的热插/拔事件进行合并;根据合并结果分别向与所述HBA卡对应的内核态驱动和用户态驱动发送热插/拔处理指令,以便所述内核态驱动和所述用户态驱动根据所述热插/拔处理指令执行对所述HBA卡的热插/拔处理。2.根据权利要求1所述的检测装置,其特征在于,所述PCI-e内核驱动具体用于:在检测到HBA卡热插/拔后,生成所述HBA卡热插/拔事件消息并采用Uevent通信机制发送至所述用户态热插/拔解析模块。3.根据权利要求1所述的检测装置,其特征在于,所述用户态热插/拔解析模块具体用于:根据所述合并结果,采用Netlink通信机制分别向与所述HBA卡对应的内核态驱动和用户态驱动发送所述热插/拔处理指令。4.根据权利要求1至3任一项所述的检测装置,其特征在于,所述用户态热插/拔解析模块具体用于:采用延时队列处理机制,针对于合并后不同的热插/拔事件,向与所述HBA卡对应的内核态驱动和用户态驱动发送所述热插/拔处理指令。5.根据权利要求4所述的检测装置,其特征在于,所述合并规则包括:当所述HBA卡的热插/拔事件为连续的两次热插/拔事件时,若所述两次热插/拔事件的间隔时间小于预设时长,则清空所述HBA卡的所述两次热插/拔事件;所述预设时长小于所述延时队列处理机制的延时间隔时长;若所述两次热插/拔事件的间隔时间不小于预设时长,则保留所述HBA卡的所...

【专利技术属性】
技术研发人员:张雪庆
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1