一种热插拔处理方法及装置制造方法及图纸

技术编号:16873728 阅读:27 留言:0更新日期:2017-12-23 11:41
本申请实施例公开了一种热插拔处理方法及装置,涉及计算机领域,实现了及时响应插拔事件,保证操作系统内部的硬件设备连接拓扑与实际一致及提高操作系统可靠性。具体方案为:框架层接收驱动层上报的插拔事件;根据该插拔事件,在第一工作队列中进行硬件设备发现,获取该OS上硬件设备的连接状态,连接状态包括插入或者拔出;根据硬件设备的连接状态,在第二工作队列中进行插入的硬件设备注册到OS或者拔出的硬件设备从OS注销。本申请实施例用于插拔事件处理。

A hot plug treatment method and device

The embodiment of the application discloses a hot plug processing method and device, which relates to the computer field, realizes timely response to plug and pull events, ensures the internal hardware device connection topology of the operation system is consistent with reality, and improves the reliability of the operation system. The specific program: the framework layer receives the driving layer to plug events; according to the insertion event, the hardware equipment in the first work queue, obtaining a connection state of hardware on the OS connection, including insert or pull out; according to the connection state of the hardware, insert the hardware devices in the second work queue registered to OS or pull out the hardware from the OS cancellation. This application embodiment is used for pluggable event processing.

【技术实现步骤摘要】
一种热插拔处理方法及装置
本申请涉及计算机领域,尤其涉及一种热插拔处理方法及装置。
技术介绍
在硬件设备(例如硬盘)的应用中,存在众多因素(例如基于用户需求对服务器或阵列连接的硬件设备进行插拔、或者由于环境、线缆的影响)造成硬件连接拓扑变化,此时,硬件设备根据硬件连接拓扑的内容,产生设备上线(phyup)、设备下线(phydown)、广播(broadcast)等中断上报驱动层,驱动层将中断转换为事件上报给框架层处理,用于将硬件硬件连接拓扑的变化同步至操作系统(OperatingSystem,OS)。在当前的Linux操作系统的Libsas框架中,Libsas框架检测到驱动层上报的硬件设备插入或拔出对应的上报事件(PORTE_BYTES_DMAED或者PHYE_LOSS_OF_SIGNAL或者PORTE_BROADCAST_RCVD)后,在OS的工作队列(workqueue)中进行硬件设备发现、硬件设备注册到OS、硬件设备从OS注销。并且,Libsas框架的现有机制,其检测到上述上报事件后,将相应事件位置1,再接收到同类事件,会不予处理,直到相应事件位清0。对于硬件设备频繁快速插拔的情景下引起的一系列事件,当前的libsas框架处理机制仅会处理首次上报的事件而丢掉部分事件,导致操作系统内部的硬件设备连接拓扑与实际不一致,引起操作系统异常。另外,由于硬件设备发现耗时短,而硬件设备注册、注销耗时长,workqueue由于处理耗时长的硬件设备注册、注销,导致无法及时响应驱动上报的事件。
技术实现思路
本申请实施例提供一种热插拔处理方法及装置,实现了及时响应插拔事件,保证操作系统内部的硬件设备连接拓扑与实际一致及提高操作系统可靠性。为达到上述目的,本申请实施例采用如下技术方案:第一方面,提供一种热插拔处理方法,该方法可以应用于OS中的框架层,框架层配置了第一工作队列及第二工作队列。该方法具体可以包括:接收驱动层上报的插拔事件;根据该插拔事件,在第一工作队列中进行硬件设备发现,获取该OS上硬件设备的连接状态,连接状态包括插入或者拔出;根据硬件设备的连接状态,在第二工作队列中进行插入的硬件设备注册到OS或者拔出的硬件设备从OS注销。通过本申请提供的热插拔处理方法,每接收到驱动层上报的一个插拔事件,在第一工作队列进行硬件设备发现,获取到最新的连接状态,并在第二队列进行插入的硬件设备注册到OS或者拔出的硬件设备从OS注销,由于第一工作队列只进行耗时短的硬件设备发现,可以快速及时的响应插拔事件,提高用户体验;又由于动态的对每个插拔事件均进行了处理,保证了系统内部的硬件设备连接拓扑与实际一致,避免了操作系统异常,提高了操作系统的可靠性。其中,插拔事件可以由用户热插拔产生、或者,环境线缆等影响产生。可选的,OS可以为linux,框架层可以为Libsas框架。OS上硬件设备的连接状态,反应了OS上插入的硬件设备或者拔出的硬件设备。可选的,第一工作队列可以是OS中原有的工作队列,第二工作队列可以是OS中新配置的工作队列。结合第一方面,在一种可能的实现方式中,根据插拔事件,在第一工作队列中进行硬件设备发现,获取硬件设备的插拔状态,具体可以实现为:在接收到插拔事件时,生成硬件设备发现事件;向第一工作队列发送硬件设备发现事件,用于在第一工作队列中进行硬件设备发现。结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,根据硬件设备的连接状态,在第二工作队列中进行插入的硬件设备注册到OS或者拔出的硬件设备从OS注销,具体可以实现为:若硬件设备的连接状态为插入,生成注册事件,向第二工作队列发送注册事件,用于在第二工作队列中进行插入的硬件设备注册到OS。若硬件设备的连接状态为拔出,生成注销事件,向第二工作队列发送注销事件,用于在第二工作队列中进行拔出的硬件设备从OS注销。结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,硬件设备可以包括:串行小型计算机系统接口(SerialattachedSmallComputerSystemInterface,SAS)硬盘,或者,串行高级技术附件(SerialAdvancedTechnologyAttachment,SATA)硬盘。插拔事件可以包括下述事件中的至少一项:PORTE_BYTES_DMAED事件、PORTE_BROADCAST_RCVD事件、PHYE_LOSS_OF_SIGNAL事件。结合第一方面或上述任一种可能的实现方式,在一种可能的实现方式中,硬件设备发现事件可以包括SAS_DISCOVERY_EVENT事件;注册事件可以包括:SAS_DEVICE_ADD事件;注销事件包括:SAS_DEVICE_DEL事件。第二方面,提供一种热插拔处理装置,该装置部署于操作系统OS中的Libsas框架,该装置配置了第一工作队列及第二工作队列。该热插拔处理装置可以包括处理器、存储器和收发器;存储器用于存储计算机执行指令,当装置运行时,处理器调用存储器存储的计算机执行指令,执行如下步骤:接收驱动层上报的插拔事件;根据接收的插拔事件,在第一工作队列中进行硬件设备发现,获取OS上硬件设备的连接状态,硬件设备的连接状态可以包括插入或者拔出;根据硬件设备的连接状态,在第二工作队列中进行插入的硬件设备注册到OS或者拔出的硬件设备从OS注销。第三方面,提供一种热插拔处理装置,该装置部署于操作系统OS中的Libsas框架,并配置了第一工作队列及第二工作队列。该热插拔处理装置可以包括:接收单元,用于接收驱动层上报的插拔事件;发现单元,用于根据接收单元接收的插拔事件,在第一工作队列中进行硬件设备发现,获取OS上硬件设备的连接状态,连接状态包括插入或者拔出;同步单元,用于根据发现单元获取的硬件设备的连接状态,在第二工作队列中进行插入的硬件设备注册到OS或者拔出的硬件设备从OS注销。需要说明的是,上述第二方面或第三方面提供的热插拔处理装置用于执行上述第一方面提供的热插拔处理方法,其具体实现可以参考上述第一方面的具体实现,此处不再一一赘述。因此,第二方面或第三方面提供的热插拔处理装置可以与上述第一方面提供的热插拔处理方法达到相同的效果。第四方面,本申请实施例提供一种热插拔处理装置,该热插拔处理装置可以实现上述第一方面方法示例中相应的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。结合第四方面,在一种可能的实现方式中,该热插拔处理装置的结构中包括处理器和收发器,该处理器被配置为支持该热插拔处理装置执行上述方法中相应的功能。该收发器用于支持该热插拔处理装置与其他网元之间的通信。该热插拔处理装置还可以包括存储器,该存储器用于与处理器耦合,其保存该热插拔处理装置必要的程序指令和数据。第五方面,本申请实施例提供了一种计算机存储介质,用于储存为上述第一方面方法示例的功能所用的计算机软件指令,其包含用于执行上述第一方面所设计的程序。上述第四方面或第五方面中提供的方案,用于实现上述第一方面提供的热插拔处理方法,因此可以与第一方面达到相同的有益效果,此处不再进行赘述。附图说明图1为现有技术提供的一种服务器架构的结构示意图;图1a为现有技术提供的另一种服务器本文档来自技高网...
一种热插拔处理方法及装置

【技术保护点】
一种热插拔处理方法,其特征在于,应用于操作系统OS中的框架层,所述框架层配置了第一工作队列及第二工作队列;所述方法包括:接收驱动层上报的插拔事件;根据所述插拔事件,在所述第一工作队列中进行硬件设备发现,获取所述OS上硬件设备的连接状态,所述连接状态包括插入或者拔出;根据所述硬件设备的连接状态,在所述第二工作队列中进行插入的硬件设备注册到所述OS或者拔出的硬件设备从所述OS注销。

【技术特征摘要】
1.一种热插拔处理方法,其特征在于,应用于操作系统OS中的框架层,所述框架层配置了第一工作队列及第二工作队列;所述方法包括:接收驱动层上报的插拔事件;根据所述插拔事件,在所述第一工作队列中进行硬件设备发现,获取所述OS上硬件设备的连接状态,所述连接状态包括插入或者拔出;根据所述硬件设备的连接状态,在所述第二工作队列中进行插入的硬件设备注册到所述OS或者拔出的硬件设备从所述OS注销。2.根据权利要求1所述的方法,其特征在于,所述根据所述插拔事件,在所述第一工作队列中进行硬件设备发现,获取硬件设备的插拔状态,包括:在接收到所述插拔事件时,生成硬件设备发现事件;向所述第一工作队列发送所述硬件设备发现事件,用于在所述第一工作队列中进行硬件设备发现。3.根据权利要求1或2所述的方法,其特征在于,所述根据所述硬件设备的连接状态,在所述第二工作队列中进行插入的硬件设备注册到所述OS或者拔出的硬件设备从所述OS注销,包括:若所述硬件设备的连接状态为插入,生成注册事件,向所述第二工作队列发送所述注册事件,用于在所述第二工作队列中进行插入的硬件设备注册到所述OS;若所述硬件设备的连接状态为拔出,生成注销事件,向所述第二工作队列发送所述注销事件,用于在所述第二工作队列中进行拔出的硬件设备从所述OS注销。4.根据权利要求1-3任一项所述的方法,其特征在于,所述硬件设备包括:SAS串行小型计算机系统接口硬盘,或者,SATA串行高级技术附件硬盘;所述插拔事件包括下述事件中的至少一项:PORTE_BYTES_DMAED事件、PORTE_BROADCAST_RCVD事件、PHYE_LOSS_OF_SIGNAL事件。5.根据权利要求3或4所述的方法,其特征在于,所述硬件设备发现事件包括SAS_DISCOVERY_EVENT事件;注册事件包括:SAS_DEVICE_ADD事件;注销事件包括:SAS_DEVICE_DEL事件。6.一种热插拔处理装置,其特征在于,所述装置部署于操作系统OS中的框架层,所述装置配置了第一工作队列及第二工作队列;所述装置包括处理器、存储器和收发器;所述存储器用于存储计算机执行指令,当所述装置运行时,处理器调用所述存储器存储的计算机执行指令,执行如下步骤:接收驱动层上报的插拔事件;根据...

【专利技术属性】
技术研发人员:陈琪林何友松梁艳中罗健
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

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

1