[发明专利]PCIe设备热拔方法及装置有效
申请号: | 201710833368.X | 申请日: | 2017-09-15 |
公开(公告)号: | CN107678994B | 公开(公告)日: | 2021-04-20 |
发明(设计)人: | 方洪灿 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F13/40 | 分类号: | G06F13/40 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | pcie 设备 方法 装置 | ||
本发明提供一种PCIe设备热拔方法及装置,主机检测自身下挂的当前PCIe设备是否发生热拔,当确认有当前PCIe设备发生热拔时,直接触发设备驱动卸载流程,能够快速响应当前PCIe设备的热拔事件,实现主机和当前PCIe设备均支持暴力热拔。而且,主机内的应用程序检测到该PCIe业务对应的无效响应消息时,直接将处理该PCIe业务的业务进程退出,从而防止PCIe设备热拔过程中造成系统挂死的现象发生。此外,在PCIe设备主动检测自身异常的场景中,PCIe设备直接将自身与主机之间的数据层链路断开,这样,主机能够检测到断链事件,并触发Link中断,然后,执行设备驱动卸载流程。与此同时,主机检测到致命错误中断后进行屏蔽、降级处理,避免将该致命错误中断导致系统挂死的现象发生。
技术领域
本发明涉及计算机技术领域,尤其涉及一种PCIe设备热拔方法及装置。
背景技术
PCIe(peripheral component interconnect express)是一种高速串行计算机扩展总线标准。PCIe设备的热插拔(hot-plugging),就是允许用户在不关闭系统,不切断电源的情况下取出和更换主机下挂的PCIe设备,并不影响主机系统的运行,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性等。
PCIe设备的热拔由实现热拔的固件控制器(硬件)和热拔驱动(软件)实现,热拔的硬件部分负责设备物理拔出的检测,并向热拔驱动上报热拔事件。热拔驱动负责处理上报的热拔事件,将对应的硬件从系统中移除。暴力热拔是指未从主机的PCIe设备驱动中触发热拔流程,而是直接拔出PCIe设备。暴力热拔过程中会出现异步事件,导致主机侧的处理器和操作系统异常,这也是导致主机不支持PCIe设备的暴力热拔的主要因素。
发明内容
有鉴于此,本发明的目的在于提供一种PCIe设备热拔方法及装置,消除主机不支持PCIe设备的暴力热拔因素,实现端到端解决PCIe设备热拔。
第一方面,本申请提供了一种PCIe设备热拔方法,应用于支持高速串行计算机扩展总线标准PCIe的主机中,包括:检测所述主机下挂的当前PCIe设备是否发生热拔;当确定所述当前PCIe设备发生热拔时,执行设备驱动卸载流程,所述设备驱动卸载流程包括:快速停止所述主机分配给所述当前PCIe设备的输入输出I/O接口,快速释放所述主机的分配给所述当前PCIe设备的系统资源,以及停止与所述主机内处理器之间的交互;当接收到与所述当前PCIe设备对应业务的无效响应消息时,正确处理异常报文并退出处理所述当前PCIe设备对应业务的业务进程。而且,利用该PCIe设备热拔方法,主机只移除主机侧发生异常的PCIe端口,不影响其它PCIe端口正常工作。
第一方面提供的PCIe设备热拔方法,主机主动检测自身下挂的当前PCIe设备是否发生热拔,当确认有当前PCIe设备发生热拔时,直接触发设备驱动卸载流程,这种主动检测机制能够快速响应当前PCIe设备的热拔事件,实现主机和当前PCIe设备均支持暴力热拔。而且,主机内的应用程序检测到该PCIe业务对应的无效响应消息时,直接将处理该PCIe业务的业务进程退出,从而防止PCIe设备热拔过程中造成系统挂死的现象发生。
在第一方面的第一种可能的实现方式中,所述检测所述主机下挂的当前PCIe设备是否发生热拔,包括:查找所述当前PCIe设备的设备标识;当查找不到所述当前PCIe设备的设备标识时,确定所述PCIe设备发生热拔。
本实现方式中,主机通过查找PCIe设备的设备标识,如果查不到则确定PCIe设备发生热拔,此种判断方式简单且能够判断出PCIe设备直接暴力拔出的情景。
在第一方面的另一种可能的实现方式中,所述检测所述主机下挂的当前PCIe设备是否发生热拔,包括:检测所述主机的内部总线是否异常;当确定所述内部总线异常时,确定所述当前PCIe设备发生热拔。
本实现方式中,主机通过检测到内部总线是否异常,确定该主机下挂的PCIe设备发生热拔现象,以便主机能够提高检测PCIe设备热拔的正确率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710833368.X/2.html,转载请声明来源钻瓜专利网。