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注销。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。